python自動化測試(二)pytest框架之conftest.py

一? conftest特點:

1、可以跨.py文件調(diào)用,有多個.py文件調(diào)用時,可讓conftest.py只調(diào)用了一次fixture抬吟,或調(diào)用多次fixture

2、conftest.py與運行的用例要在同一個pakage下统抬,并且有__init__.py文件

3拗军、不需要import導(dǎo)入 conftest.py任洞,pytest用例會自動識別該文件,放到項目的根目錄下就可以全局目錄調(diào)用了发侵,如果放到某個package下,那就在改package內(nèi)有效妆偏,可有多個conftest.py

4刃鳄、conftest.py配置腳本名稱是固定的,不能改名稱

5钱骂、conftest.py文件不能被其他文件導(dǎo)入

6叔锐、所有同目錄測試文件運行前都會執(zhí)行conftest.py文件

conftest應(yīng)用場景

1、每個接口需共用到的token

2见秽、每個接口需共用到的測試用例數(shù)據(jù)

3愉烙、每個接口需共用到的配置信息



二? conftest用法結(jié)合fixture使用:

1、fixture源碼詳解

fixture(scope='function'解取,params=None步责,autouse=False,ids=None禀苦,name=None):

fixture里面有個scope參數(shù)可以控制fixture的作用范圍蔓肯,scope:有四個級別參數(shù)"function"(默認(rèn)),"class"振乏,"module"蔗包,"session

params:一個可選的參數(shù)列表,它將導(dǎo)致多個參數(shù)調(diào)用fixture功能和所有測試使用它慧邮。

autouse:如果True调限,則為所有測試激活fixture func可以看到它。如果為False則顯示需要參考來激活fixture

ids:每個字符串id的列表误澳,每個字符串對應(yīng)于params這樣他們就是測試ID的一部分耻矮。如果沒有提供ID它們將從params自動生成

name:fixture的名稱。這默認(rèn)為裝飾函數(shù)的名稱脓匿。如果fixture在定義它的統(tǒng)一模塊中使用淘钟,夾具的功能名稱將被請求夾具的功能arg遮蔽,解決這個問題的一種方法時將裝飾函數(shù)命令"fixture_"然后使用"@pytest.fixture(name='')"陪毡。

2米母、fixture的作用范圍

fixture里面有個scope參數(shù)可以控制fixture的作用范圍:session>module>class>function

-function:每一個函數(shù)或方法都會調(diào)用

-class:每一個類調(diào)用一次,一個類中可以有多個方法

-module:每一個.py文件調(diào)用一次毡琉,該文件內(nèi)又有多個function和class

-session:是多個文件調(diào)用一次铁瞒,可以跨.py文件調(diào)用,每個.py文件就是module

function默認(rèn)模式@pytest.fixture(scope='function')或?@pytest.fixture()

3桅滋、conftest結(jié)合fixture的使用

conftest中fixture的scope參數(shù)為session慧耍,所有測試.py文件執(zhí)行前執(zhí)行一次

conftest中fixture的scope參數(shù)為module身辨,每一個測試.py文件執(zhí)行前都會執(zhí)行一次conftest文件中的fixture

conftest中fixture的scope參數(shù)為class,每一個測試文件中的測試類執(zhí)行前都會執(zhí)行一次conftest文件中的fixture

conftest中fixture的scope參數(shù)為function芍碧,所有文件的測試用例執(zhí)行前都會執(zhí)行一次conftest文件中的fixture


三? 代碼示例:

__init__.py

import pytest

if __name__=='__main__':

? ? pytest.main(["-s","test02.py","test03.py"])

test02.py

import pytest

# test02.py

class Test(object):

? ? def test_two(self,get_token):

? ? ? ? token= 'abcdefg'

? ? ? ? print("【執(zhí)行test02.py-Test類-test2用例,獲取get_token:%s】" %get_token)

assert get_token== token

test03.py

import pytest

class Test(object):

? ? def test_three(self,get_token):

? ? ? ? token= 'abcdefg'

? ? ? ? print("【執(zhí)行test03.py-Test類-test3用例,獲取get_token:%s】" %get_token)

assert get_token== token

def test_four(self,get_token):

? ? ? ? token= '123456'

? ? ? ? print("【執(zhí)行test03.py-Test類-test4用例,獲取get_token:%s】" %get_token)

assert get_token== token

conftest.py

import pytest

@pytest.fixture(scope='session')

def get_token():

? ? token= 'abcdefg'

? ? print('獲取到token:%s' % token)

return token

執(zhí)行結(jié)果

collected 3 items

test02.py 獲取到token:abcdefg

【執(zhí)行test02.py-Test類-test2用例,獲取get_token:abcdefg】

.

test03.py 【執(zhí)行test03.py-Test類-test3用例,獲取get_token:abcdefg】

.【執(zhí)行test03.py-Test類-test4用例,獲取get_token:abcdefg】

F

================================== FAILURES ===================================

_______________________________ Test.test_four ________________________________

self = <pytest演練.test03.Test object at 0x000001CED7A6CF98>

get_token = 'abcdefg'

? ? def test_four(self,get_token):

? ? ? ? token = '123456'

? ? ? ? print("【執(zhí)行test03.py-Test類-test4用例,獲取get_token:%s】" %get_token)

>? ? ? assert get_token == token

E? ? ? AssertionError

test03.py:10: AssertionError

========================= 1 failed, 2 passed in 0.09s =========================

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煌珊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泌豆,更是在濱河造成了極大的恐慌定庵,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踪危,死亡現(xiàn)場離奇詭異蔬浙,居然都是意外死亡,警方通過查閱死者的電腦和手機贞远,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門畴博,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蓝仲,你說我怎么就攤上這事俱病。” “怎么了杂曲?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵庶艾,是天一觀的道長。 經(jīng)常有香客問我擎勘,道長咱揍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任棚饵,我火速辦了婚禮煤裙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘噪漾。我一直安慰自己硼砰,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布欣硼。 她就那樣靜靜地躺著题翰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诈胜。 梳的紋絲不亂的頭發(fā)上豹障,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音焦匈,去河邊找鬼血公。 笑死,一個胖子當(dāng)著我的面吹牛缓熟,可吹牛的內(nèi)容都是我干的累魔。 我是一名探鬼主播摔笤,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼垦写!你這毒婦竟也來了吕世?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤梯澜,失蹤者是張志新(化名)和其女友劉穎寞冯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晚伙,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年俭茧,在試婚紗的時候發(fā)現(xiàn)自己被綠了咆疗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡母债,死狀恐怖午磁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毡们,我是刑警寧澤迅皇,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站衙熔,受9級特大地震影響登颓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜红氯,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一框咙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧痢甘,春花似錦喇嘱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至放椰,卻和暖如春作烟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背庄敛。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工俗壹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人藻烤。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓绷雏,卻偏偏與公主長得像头滔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子涎显,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348