- Python服務(wù)端測(cè)試開發(fā)實(shí)戰(zhàn)
- 無(wú)涯編著
- 1226字
- 2024-12-31 18:36:54
1.4 pytest常用命令
在pytest測(cè)試框架中執(zhí)行程序時(shí)會(huì)用到很多命令,下面詳細(xì)介紹一些常用命令的使用。
1.打印詳細(xì)信息
在pytest中執(zhí)行命令時(shí)帶上-v參數(shù),就會(huì)輸出詳細(xì)的信息,代碼如下。

不帶-v參數(shù)的命令如下。
python3 -m pytest test_command.py
不帶-v參數(shù)命令執(zhí)行后的結(jié)果如圖1-7所示。

圖1-7 不帶-v參數(shù)命令執(zhí)行后的結(jié)果
在圖1-7中可以看到執(zhí)行結(jié)果是.,.表示的是通過。帶-v參數(shù)的命令如下。帶-v參數(shù)命令執(zhí)行后的結(jié)果如圖1-8所示。
python3 -m pytest -v test_command.py

圖1-8 帶-v參數(shù)命令執(zhí)行后的結(jié)果
備注:
執(zhí)行帶-v參數(shù)的命令的輸出結(jié)果中詳細(xì)地顯示了測(cè)試模塊中具體的測(cè)試函數(shù),結(jié)果信息也是通過PASSED來表示。
2.輸出信息
在實(shí)際測(cè)試中,當(dāng)測(cè)試函數(shù)出現(xiàn)錯(cuò)誤時(shí),需要進(jìn)行具體的調(diào)試,可以通過在測(cè)試函數(shù)中添加print()函數(shù)輸出調(diào)試信息來幫助調(diào)試具體的錯(cuò)誤。pytest執(zhí)行時(shí),如果需要輸出測(cè)試函數(shù)的信息,則應(yīng)帶上-s參數(shù)。修改test_command.py模塊的代碼如下。

執(zhí)行命令如下。
python3 -m pytest -v -s test_command.py
帶-s參數(shù)命令執(zhí)行后的結(jié)果如圖1-9所示。

圖1-9 帶-s參數(shù)命令執(zhí)行后的結(jié)果
備注:
圖1-9中顯示了測(cè)試函數(shù)中print()輸出的內(nèi)容。
3.按分類執(zhí)行
在pytest中,參數(shù)-k允許使用表達(dá)式來指定希望執(zhí)行的測(cè)試用例,如果測(cè)試用例編寫的過程中按照業(yè)務(wù)進(jìn)行命名,那么在執(zhí)行過程中可以指定執(zhí)行哪些業(yè)務(wù)的測(cè)試用例,代碼如下。

在如上代碼中,假設(shè)開發(fā)只調(diào)整了login模塊,那么可以只執(zhí)行測(cè)試函數(shù)名中帶login的測(cè)試用例,命令如下。
python3 -m pytest -v -k "login" test_login.py
帶-k參數(shù)命令執(zhí)行后的結(jié)果如圖1-10所示。

圖1-10 帶-k參數(shù)命令執(zhí)行后的結(jié)果
備注:
如上結(jié)果中,只執(zhí)行了函數(shù)名中帶login關(guān)鍵字的測(cè)試用例。如果想同時(shí)執(zhí)行函數(shù)名中帶login和logout的測(cè)試用例,可以使用以下命令。
python3 -m pytest -v -k "login or logout" test_command.py
執(zhí)行后輸出的結(jié)果如圖1-11所示。

圖1-11 分類執(zhí)行條件為或(or)的執(zhí)行結(jié)果
備注:
如果在執(zhí)行命令中的表達(dá)式是或的關(guān)系,那么就會(huì)執(zhí)行函數(shù)名中帶login和logout的測(cè)試用例,圖1-11中的執(zhí)行結(jié)果顯示執(zhí)行了帶不同關(guān)鍵字的兩個(gè)測(cè)試用例。
4.按分組執(zhí)行
pytest的命令中帶參數(shù)-m可以快速找到分組并且立刻執(zhí)行,分組模式主要是根據(jù)裝飾器執(zhí)行的。代碼如下。

下面介紹使用分組的方式來執(zhí)行測(cè)試用例,如只執(zhí)行分組為login和logout的測(cè)試用例,命令如下。
python3 -m pytest -v -m "login and logout" test_command.py
帶-m參數(shù)命令執(zhí)行后的結(jié)果如圖1-12所示。

圖1-12 帶-m參數(shù)命令執(zhí)行后的結(jié)果
備注:
如上輸出結(jié)果中,同時(shí)滿足login和logout分組的測(cè)試用例只有test_command_001()測(cè)試函數(shù),所以只執(zhí)行了該函數(shù)。
對(duì)執(zhí)行的命令進(jìn)行調(diào)整,同時(shí)執(zhí)行分組login和logout的測(cè)試用例,命令如下。
python3 -m pytest -v -m "login or logout" test_command.py
執(zhí)行結(jié)果如圖1-13所示。

圖1-13 執(zhí)行結(jié)果
備注:
如果執(zhí)行的表達(dá)式是或關(guān)系,則執(zhí)行所有滿足條件的測(cè)試用例。
5.執(zhí)行失敗立刻停止
在pytest執(zhí)行測(cè)試用例的過程中,如果有一個(gè)測(cè)試用例執(zhí)行失敗,就立刻停止執(zhí)行所有測(cè)試用例,使用到的參數(shù)是-x,代碼如下。

如上代碼中第一個(gè)測(cè)試用例斷言執(zhí)行失敗,即說明執(zhí)行的過程失敗,命令如下。
python3 -m pytest -v -x test_command.py
執(zhí)行結(jié)果如圖1-14所示。

圖1-14 帶-x參數(shù)命令執(zhí)行結(jié)果
備注:
如上代碼中,執(zhí)行到第一個(gè)測(cè)試用例時(shí)失敗,后面的測(cè)試用例就不會(huì)執(zhí)行。一般不建議使用該命令。在測(cè)試執(zhí)行的過程中,不管是否執(zhí)行失敗,都應(yīng)該把所有的測(cè)試用例執(zhí)行完成。
- Learn ECMAScript(Second Edition)
- Python 3.7網(wǎng)絡(luò)爬蟲快速入門
- Redis Applied Design Patterns
- Instant Zepto.js
- 用Python實(shí)現(xiàn)深度學(xué)習(xí)框架
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)實(shí)踐教程
- 軟件測(cè)試實(shí)用教程
- 利用Python進(jìn)行數(shù)據(jù)分析
- MATLAB 2020 GUI程序設(shè)計(jì)從入門到精通
- Ubuntu Server Cookbook
- Elasticsearch實(shí)戰(zhàn)(第2版)
- Vue.js從入門到精通
- Swift 5從零到精通iOS開發(fā)訓(xùn)練營(yíng)
- Ionic Cookbook
- 可信軟件基礎(chǔ)研究