Python pytest裝飾器總結(jié)(實(shí)例詳解)
幾個(gè)常用裝飾器
pytest.ini 配置文件 例子:
[pytest] addopts = -v -s --html=py_test/scripts/report/report.html -p no:warnings --reruns=10 testpaths = ./py_test/scripts python_files= test_rerun.py python_classes = Test* python_function = test* xfail_strict = true
addopts: OPTS 命令行參數(shù)集
-s:表示輸出調(diào)試信息,包括 print打印的信息 -v:顯示更詳細(xì)的信息 -vs:這兩個(gè)參數(shù)一起用 -n :支持多線程或者分布式運(yùn)行測(cè)試用例 如:pytest -vs ./testcase/test_login.py -n 2 --html : 測(cè)試報(bào)告位置 --reruns : 失敗重跑 -p no:warnings : 取消警告 --ff : 先執(zhí)行上次失敗的用例 --lf : 只執(zhí)行上次失敗的用例 -x : 遇到測(cè)試用例fail,就結(jié)束測(cè)試 --maxfail=num:遇到num條測(cè)試用例fail, 就結(jié)束測(cè)試 -k :根據(jù)測(cè)試用例的部分字符串指定測(cè)試用例 如:pytest -vs ./testcase -k “ao”
skipif-跳過(guò)測(cè)試
跳過(guò)測(cè)試的使用方法
pytest.skip (用于函數(shù)內(nèi),跳過(guò)測(cè)試用例)
def test_2(): if 1 < 2: pytest.skip('1111111') pass
@pytest.mark.skip(用于函數(shù)外,跳過(guò)測(cè)試用例)
@pytest.mark.skip(reason='feature not implemented') def test_1(): pass # 模塊級(jí)別跳過(guò)。(注:參數(shù)allow_module_level的值設(shè)為T(mén)rue) pytest.skip('skip all tests', allow_module_level=True)
@pytest.mark.skipif(用于函數(shù)外,條件condition,跳過(guò)原因reason="xxx")
@pytest.mark.skipif(condition='1<2',reason='feature not implemented') def test_1(): pass
ordering-執(zhí)行順序
- 控制用例執(zhí)行順序的方法
- 在需要調(diào)整用例執(zhí)行順序的函數(shù)(或方法)前增加
@pytest.mark.run(order=x) x表示
3.數(shù)字?jǐn)?shù)字形式: 小數(shù)、整數(shù)、負(fù)數(shù)
執(zhí)行順序:
1、由小到大
2、由正到負(fù)
3、未標(biāo)記 的在正數(shù)后,負(fù)數(shù)前執(zhí)行
順序: 1,2,3,無(wú)標(biāo)記,-3,-2,-1
xfail-預(yù)期失敗
xfail-預(yù)期失敗的函數(shù)
語(yǔ)法
xfail(condition, reason)
--condition 預(yù)期失敗的條件
--reason 預(yù)期失敗的原因
pytest.ini加參數(shù),
不希望出現(xiàn) 預(yù)期失敗結(jié)果成功 的情況
就在配置文件中添加一個(gè)參數(shù):
xfail_strict = true
fixture-函數(shù)作參數(shù)
fixture用途:可將被fixture標(biāo)記的函數(shù)當(dāng)作參數(shù)使用
掌握一個(gè)fixture 實(shí)現(xiàn) setup 和 tearduwn
yield 關(guān)鍵字
yield 后邊代碼是用例執(zhí)行完后再執(zhí)行的。相當(dāng)于teardown
當(dāng)用例執(zhí)行完之后, 會(huì)執(zhí)行yield 后面的代碼,但不能 return
addfinalize 關(guān)鍵字
這個(gè)實(shí)現(xiàn)功能跟yield的一樣, 但可以用return,將參數(shù)傳給后面的用例.
fixture 可放到conftest.py文件下
conftest.py會(huì)自動(dòng)識(shí)別 哪個(gè)用例調(diào)用了這個(gè)函數(shù)
parametrize-參數(shù)化
parametrize(argnames,argvalues)
--argnames : 參數(shù)名
--argvalues : 參數(shù)值, 數(shù)據(jù)類(lèi)型是 list
語(yǔ)法
@pytest.mark.parametrize
@pytest.mark.parametrize("mobile,code", [(121,212),(123,321)])
rerunfailure-失敗重跑
失敗重跑機(jī)制
安裝pytest-rerunfailure
在設(shè)置文件pytest.ini中添加命令
reruns = 重跑次數(shù)
addopts = --reruns=10
鏈接Mysql
一.環(huán)境搭建
對(duì)接mysql數(shù)據(jù)庫(kù)需要通過(guò)第三方庫(kù)PyMySQl
二.數(shù)據(jù)庫(kù)操作
建立數(shù)據(jù)庫(kù)連接 :MySQlconnect = pymysql.connect(“數(shù)據(jù)庫(kù)地址“,“數(shù)據(jù)庫(kù)端口“,”數(shù)據(jù)庫(kù)賬號(hào)“等)
獲取操作游標(biāo): cursor = MySQlconnect .cursor()
執(zhí)行SQL語(yǔ)句:cursor .execute(“SQL語(yǔ)句”)
獲取一條數(shù)據(jù):data = cursor.fetchone()
獲取結(jié)果(讀):cursor.fetchall()
提交更改(寫(xiě)):MySQlconnect .commit()
關(guān)閉游標(biāo):cursor.close()
關(guān)閉連接 :MySQlconnect .close()
到此這篇關(guān)于Python pytest裝飾器總結(jié)的文章就介紹到這了,更多相關(guān)pytest裝飾器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Pytest使用logging模塊寫(xiě)日志的實(shí)例詳解
- pytest測(cè)試框架+allure超詳細(xì)教程
- pytest官方文檔解讀之安裝和使用插件的方法
- pytest使用@pytest.mark.parametrize()實(shí)現(xiàn)參數(shù)化的示例代碼
- Pytest執(zhí)行unittest TestSuite(測(cè)試套件)的實(shí)現(xiàn)方法
- python單測(cè)框架之pytest常見(jiàn)用法
- 詳解Pytest測(cè)試用例的執(zhí)行方法
- 詳解pytest實(shí)現(xiàn)mark標(biāo)記功能詳細(xì)介紹
- pytest-sugar?執(zhí)行過(guò)程中顯示進(jìn)度條的腳本分享
相關(guān)文章
對(duì)python插入數(shù)據(jù)庫(kù)和生成插入sql的示例講解
今天小編就為大家分享一篇對(duì)python插入數(shù)據(jù)庫(kù)和生成插入sql的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python中統(tǒng)計(jì)相同字符的個(gè)數(shù)方法實(shí)例
我們?cè)陂_(kāi)發(fā)中經(jīng)常需要統(tǒng)計(jì)某個(gè)字符或字符串出現(xiàn)的次數(shù),下面這篇文章主要給大家介紹了關(guān)于python中統(tǒng)計(jì)相同字符的個(gè)數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01pytest接口測(cè)試之fixture傳參數(shù)request的使用
本文主要介紹了pytest接口測(cè)試之fixture傳參數(shù)request的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Python 字符串操作實(shí)現(xiàn)代碼(截取/替換/查找/分割)
這篇文章主要介紹了Python 字符串截取/替換/查找/分割等實(shí)現(xiàn)方法,需要的朋友可以參考下2013-06-06Python設(shè)計(jì)模式之觀察者模式實(shí)例
這篇文章主要介紹了設(shè)計(jì)模式中的觀察者模式Python實(shí)例,需要的朋友可以參考下2014-04-04python實(shí)現(xiàn)超市商品銷(xiāo)售管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)超市商品銷(xiāo)售管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10