一芒炼、pytest常用夾具(前后置方法)
1.setup/teardown&setup_class/teardown_class(針對(duì)全部case)
使用場(chǎng)景:case執(zhí)行前需要打開(kāi)瀏覽器叶组,執(zhí)行后關(guān)閉瀏覽器
setup/teardown是在每個(gè)case前后執(zhí)行
setup_class/teardown_class是在類的前后執(zhí)行
2.使用@pytest.fixture()裝飾器實(shí)現(xiàn)部分case前后置
@pytest.fixture(scope=" "锣险,params=" ",autouse=" ",ids=" ",name=" ")
參數(shù)詳解:scope :被@pytest.fixture標(biāo)記的方法的作用域鱼蝉,function(默認(rèn))、class佳鳖、module和package(session)泵殴;
params :參數(shù)化,支持列表[]单寂、元祖(,)贬芥、字典列表[{},{},]、字典元祖({},{},)
autouse=True:自動(dòng)使用宣决,默認(rèn)為False(case不需要寫(xiě)裝飾器名稱蘸劈,為T(mén)rue時(shí)全部使用)
ids:當(dāng)使用params參數(shù)化是,給每一個(gè)值設(shè)置一個(gè)變量名尊沸,用的不多
name:給被@pytest.fixture標(biāo)記的方法取一個(gè)別名威沫,取了別名之后之前的名稱就不能用了
3.通過(guò)conftest.py和@pytest.fixture()結(jié)合使用實(shí)現(xiàn)全局的前后置應(yīng)用?
3.1conftest.py是夾具的配置文件,名稱不能更改
3.2用處:在不同的py文件里使用同一個(gè)fixture函數(shù)
3.3原則上conftest.py需要和運(yùn)行的case放到一層洼专,不需求import
二棒掠、pytest結(jié)合allure-pytest插件生成allure測(cè)試報(bào)告
1.下載、解壓屁商、配置path路徑
http://allure.qatools.ru/
2.加入命令生成json格式的臨時(shí)報(bào)告
--alluredir ./temp
3.生成allure報(bào)告
os.system('allure generate ./temp -o ./report --clean')
allure generate? allure命令
./temp? 臨時(shí)的json格式報(bào)告路徑
?-o? ? ? 輸出?
./report? ?生成的allure報(bào)告路徑
--clean? ?清空./report下上次的報(bào)告
三烟很、@pytest.mark.parametrize()
@pytest.mark.parametrize(args_name,args_value)
arg_name:參數(shù)名
args_value:參數(shù)值(列表、元祖、字典列表雾袱、字典元祖)
四恤筛、yaml文件
1.用于全局的配置文件(ini/yaml)
2.用于寫(xiě)測(cè)試用例(接口測(cè)試)
yaml簡(jiǎn)介:
yaml是一種數(shù)據(jù)格式,支持注釋谜酒,換行叹俏,多行字符串,裸字符串(整型僻族、字符串粘驰、數(shù)字)
語(yǔ)法規(guī)則:
1.區(qū)分大小寫(xiě)
2.使用縮進(jìn)表示層級(jí),不能使用tab鍵述么,只能用空格
3.縮進(jìn)沒(méi)有數(shù)量蝌数,前面對(duì)齊即可
4.注釋#
數(shù)據(jù)組成
1.map對(duì)象,鍵值對(duì) 鍵:(空格)值
多行的寫(xiě)法
person:
? ? ? name: baby
? ? ? age: 16
一行的寫(xiě)法:
person:{name:baby,age: 16}
2.數(shù)組(list)度秘,用一組橫線開(kāi)頭
多行的寫(xiě)法:
-
person1:
? ?-name: baby
? ?-age: 16
-
person2:
? ?-name: lili
? ?-age: 19
一行的寫(xiě)法:
-
person1:[{name:baby},{age:18}]