欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python自動(dòng)化測試框架pytest的詳解安裝與運(yùn)行

 更新時(shí)間:2021年10月09日 10:57:51   作者:愛測試的高胖胖  
這篇文章主要為大家介紹了Python自動(dòng)化測試框架pytest的簡介以及安裝與運(yùn)行,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步

1. pytest的介紹

pytest是一個(gè)非常成熟的全功能的python測試工具,它主要有以下特征:

簡單靈活,容易上手;

支持簡單的單元測試和復(fù)雜的功能測試

顯示詳細(xì)的斷言失敗信息

能自動(dòng)識別測試模塊和測試功能

有測試會(huì)話、測試模塊、測試類、測試函數(shù)級別的fixture

可用于selenium/Appium等自動(dòng)化測試和接口自動(dòng)化測試(pytest+requests);

擁有豐富的第三方插件,還可自定義擴(kuò)展;

可與持續(xù)集成工具進(jìn)行很好的集成,如:Jenkins。

2. pytest的安裝

1. 使用以下命令進(jìn)行安裝

pip install -U pytest

參數(shù)說明:
-U: 將指定的軟件包升級至當(dāng)前最新的可用版本
其他說明:
官網(wǎng)安裝說明有加上-U參數(shù),不加上-U參數(shù)亦可

2. 檢查是否成功安裝正確版本

$ pytest --version
pytest 6.2.4

3. pytest識別測試的條件

1.若無指定參數(shù),pytest會(huì)從testpath(如果配置)或當(dāng)前目錄下遞歸查找與 norecursedirs不匹配的目錄。

2.查找目錄中所有符合test_*.py*_test.py的文件

3.從匹配到的測試文件中,搜集滿足以下條件的測試用例:

  • 在類之外的所有test_*方法
  • Test*類中包含的所有test_*方法(Test*類中不能含有__init__()方法)

4. pytest的運(yùn)行

pytest的運(yùn)行分為以下方式:

1. Pycharm中進(jìn)行調(diào)用
2. Python代碼中調(diào)用
3. 使用命令行進(jìn)行調(diào)用

4.1 Pycharm中調(diào)用

Pycharm中默認(rèn)的test runner是Unittest,無法識別使用pytest編寫的測試文件和測試用例

在這里插入圖片描述

在這里插入圖片描述

進(jìn)入Preferences-->Tools-->Python Integrted Tools,

修改Testing下的Default test runner,改成pytest后,

則可以直接使用Pycharm中的Run按鈕無參數(shù)的調(diào)用pytest。

在這里插入圖片描述

在這里插入圖片描述

4.2 Python代碼中調(diào)用

在代碼中添加入口函數(shù)—pytest.main(),即可在Python代碼中調(diào)用pytest。

pytest.main()的參數(shù):

在這里插入圖片描述

1. args:命令行指令列表集

示例代碼sample1:

import pytest
class TestDemo:
    def test_demo1(self):
    	print("test_demo1")    
    def test_demo2(self):
    	print("test_demo2")
    if  __name__=='__main__':
     pytest.main(['test_sample.py::TestDemo::test_demo1','-v'])

pytest.main(['test_sample.py::test_demo1','-v'])的參數(shù)說明:

''test_sample.py::TestDemo::test_demo1'':表示運(yùn)行test_sample.py中的TestDemo類里面名為test_demo1的測試方式

-v:表示打印詳細(xì)運(yùn)行日志信息

運(yùn)行結(jié)果:

在這里插入圖片描述

2. plugins:在初始化過程中可自動(dòng)注冊的插件對象列表

示例代碼sample2:

import pytest
import sys
class TestDemo:
    def test_demo1(self):
        print("test_demo1")
    def test_demo2(self):
        print("test_demo2")

class MyPlugin:
    def pytest_sessionfinish(self):
        print("*** test run reporting finishing")
if __name__ == '__main__':
    sys.exit(pytest.main(['-v','test_sample.py::TestDemo::test_demo1'], plugins=[MyPlugin()]))

pytest.main(['-v','test_sample.py::TestDemo::test_demo1'], plugins=[MyPlugin()])參數(shù)說明:

plugins=[MyPlugin()])):傳入自定義的MyPlugin()函數(shù)

運(yùn)行結(jié)果:

在這里插入圖片描述

4.3 使用命令行調(diào)用

1. 使用python調(diào)用
當(dāng)代碼中我們添加入口函數(shù)后,可以使用python來調(diào)用pytest。
以sample2的代碼為例,在終端輸入一下命令:

python test_sample.py 

運(yùn)行結(jié)果:

在這里插入圖片描述

2. 使用pytest調(diào)用

常用參數(shù)列表

以下列舉了一些常用的pytest的執(zhí)行參數(shù),其他參數(shù)可使用pytest --help查看。

參數(shù) 說明
pytest 目錄路徑 運(yùn)行指定目錄下可收集到的測試,為空則默認(rèn)執(zhí)行當(dāng)前目錄下收集到的測試
pytest 文件名.py 執(zhí)行單獨(dú)一個(gè)pytest模塊
pytest 文件名.py::類名 運(yùn)行某個(gè)模塊中的某個(gè)類
pytest 文件名.py::類名::方法名 運(yùn)行某個(gè)模塊中的某個(gè)類的某個(gè)方法
pytest -v 打印詳細(xì)運(yùn)行日志信息
pytest -v -s 文件名.py 帶控制臺輸出結(jié)果,也輸出運(yùn)行詳細(xì)日志信息
pytest -x 文件名.py 一旦運(yùn)行到報(bào)錯(cuò),就停止運(yùn)行
pytest -k "類名 and not 方法名" 執(zhí)行某個(gè)關(guān)鍵字的用例
pytest -m [標(biāo)記名] @pytest.mark.[標(biāo)記名]將運(yùn)行這個(gè)標(biāo)記的測試用例
pytest –maxfail=[num] 當(dāng)運(yùn)行錯(cuò)誤到達(dá)num時(shí)候就停止運(yùn)行
pytest –colection-only 只收集測試用例
pytest –junitxml=./result.xml 生成執(zhí)行結(jié)果文件
pytest –setup-show 回溯fixture的執(zhí)行過程

參數(shù)演示示例:

demo目錄如下

在這里插入圖片描述

1.pytest目錄路徑:運(yùn)行指定目錄下可收集到的測試

在這里插入圖片描述

2.pytest文件名.py:執(zhí)行單獨(dú)一個(gè)pytest模塊

在這里插入圖片描述

3.pytest 文件名.py::類名:運(yùn)行某個(gè)模塊中的某個(gè)類

在這里插入圖片描述

4.pytest 文件名.py::類名::方法名:運(yùn)行某個(gè)模塊中的某個(gè)類的某個(gè)方法

在這里插入圖片描述

5.pytest -v: 打印詳細(xì)運(yùn)行日志信息

在這里插入圖片描述

6.pytest -v -s 文件名.py:帶控制臺輸出結(jié)果,也輸出運(yùn)行詳細(xì)日志信息

在這里插入圖片描述

7.pytest -x 文件名.py:一旦運(yùn)行到報(bào)錯(cuò),就停止運(yùn)行

在這里插入圖片描述

8.pytest -k "類名 and not 方法名":執(zhí)行某個(gè)關(guān)鍵字的用例

注意:示例中,測試用例名稱中包含“test_c”和“test_d”的都會(huì)被執(zhí)行

在這里插入圖片描述

9.pytest -m [標(biāo)記名]:@pytest.mark.[標(biāo)記名]將運(yùn)行這個(gè)標(biāo)記的測試用例

對兩個(gè)測試方法進(jìn)行@pytest.mark.[標(biāo)記]的標(biāo)記。

在這里插入圖片描述

運(yùn)行結(jié)果:

只運(yùn)行了被標(biāo)記的兩個(gè)測試方法。

在這里插入圖片描述

10. pytest --maxfail=[num]:當(dāng)運(yùn)行錯(cuò)誤到達(dá)num時(shí)候就停止運(yùn)行

對代碼進(jìn)行修改,模擬兩條運(yùn)行失敗測試用例。

在這里插入圖片描述

運(yùn)行結(jié)果:

在這里插入圖片描述

11. pytest --colection-only:只收集測試用例

在這里插入圖片描述

12. pytest --junitxml=./result.xml:生成執(zhí)行結(jié)果文件

在這里插入圖片描述

執(zhí)行結(jié)束后,對應(yīng)目錄下會(huì)生成一個(gè)結(jié)果文件。

在這里插入圖片描述

13.pytest --setup-show:回溯fixture的執(zhí)行過程

對原有代碼進(jìn)行修改。新增一個(gè)fixture修飾的函數(shù),并對test_demo1測試方法進(jìn)行修改。

在這里插入圖片描述

運(yùn)行結(jié)果:

在這里插入圖片描述

文末說明:
以上內(nèi)容是我在閱讀pytest官方文檔后,依照個(gè)人理解進(jìn)行整理。內(nèi)容可能會(huì)有理解錯(cuò)誤之處,歡迎大家留言指正。謝謝!

以上就是Python自動(dòng)化測試框架pytest介紹安裝與運(yùn)行的詳細(xì)內(nèi)容,更多關(guān)于Python自動(dòng)化測試框架pytest的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Python中的動(dòng)態(tài)屬性和特性

    詳解Python中的動(dòng)態(tài)屬性和特性

    本篇文章主要介紹了詳解Python中的動(dòng)態(tài)屬性和特性,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • Pandas操作CSV文件的讀寫實(shí)現(xiàn)方法

    Pandas操作CSV文件的讀寫實(shí)現(xiàn)方法

    這篇文章主要介紹了Pandas操作CSV文件的讀寫實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python實(shí)現(xiàn)桌面托盤氣泡提示

    python實(shí)現(xiàn)桌面托盤氣泡提示

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)桌面托盤氣泡提示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python多進(jìn)程中的內(nèi)存復(fù)制(實(shí)例講解)

    python多進(jìn)程中的內(nèi)存復(fù)制(實(shí)例講解)

    下面小編就為大家分享一篇python多進(jìn)程中的內(nèi)存復(fù)制(實(shí)例講解),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • python利用蒙版摳圖(使用PIL.Image和cv2)輸出透明背景圖

    python利用蒙版摳圖(使用PIL.Image和cv2)輸出透明背景圖

    這篇文章主要介紹了python利用蒙版摳圖(使用PIL.Image和cv2)輸出透明背景圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 解決Pytorch在測試與訓(xùn)練過程中的驗(yàn)證結(jié)果不一致問題

    解決Pytorch在測試與訓(xùn)練過程中的驗(yàn)證結(jié)果不一致問題

    這篇文章主要介紹了解決Pytorch在測試與訓(xùn)練過程中的驗(yàn)證結(jié)果不一致問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python封裝解構(gòu)以及丟棄變量

    Python封裝解構(gòu)以及丟棄變量

    這篇文章主要介紹了Python封裝解構(gòu)以及丟棄變量,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • Python語言異常處理測試過程解析

    Python語言異常處理測試過程解析

    這篇文章主要介紹了Python語言異常處理測試過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 解決pytorch 交叉熵?fù)p失輸出為負(fù)數(shù)的問題

    解決pytorch 交叉熵?fù)p失輸出為負(fù)數(shù)的問題

    這篇文章主要介紹了解決pytorch 交叉熵?fù)p失輸出為負(fù)數(shù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python Pandas如何對數(shù)據(jù)集隨機(jī)抽樣

    python Pandas如何對數(shù)據(jù)集隨機(jī)抽樣

    這篇文章主要介紹了python Pandas如何對數(shù)據(jù)集隨機(jī)抽樣,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論