<bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 首頁 > 空調 >

    干貨 | 初窺 Pytest 測試框架,基礎薄弱也能輕松 hold 住

    ?? 復制“下方鏈接”,提升測試核心競爭力!

    >>更多技術文章分享和免費資料領取

    https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=souhu×tamp=1650330644

    pytest 是一個成熟的全功能Python測試工具,可以幫助您編寫更好的程序。它與 python 自帶的 unittest 測試框架類似,但 pytest 使用起來更簡潔和高效,并且兼容 unittest 框架。

    pytest 能夠支持簡單的單元測試和復雜的功能測試,pytest 本身支持單元測試,可以結合 requests 實現接口測試,結合selenium、appium 實現自動化功能測試,使用 pytest 結合 allure 集成到 Jenkins 中可以實現持續集成。

    工作中一般會使用持續集成來完成代碼集成到主干分支之后的回歸測試,通過自動化測試的手段來實現產品的快速迭代,同時還能保證產品的高質量。

    Pytest常用方法

    安裝

    pip install -U pytest

    查看版本

    pytest --version

    用例編寫規范

    測試文件以test_開頭(以_test結尾也可以) 測試類以Test開頭,并且不能帶有 init 方法 測試函數以test_開頭 斷言使用基本的assert即可

    創建一個python文件,命名以test_開頭(或者以_test結尾),創建測試方法以test_開頭,測試類需要以Test開頭。創建文件名為test_add.py文件,代碼如下:

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-

    def add(x, y):

    return x + y

    def test_add():

    assert add(1, 10) == 11

    assert add(1, 1) == 2

    assert add(1, 99) == 100

    class TestClass:

    def test_one(self):

    x = "this"

    assert "h" in x

    def test_two(self):

    x = "hello"

    assert hasattr(x, "check")

    運行 “test_add.py” 文件,在命令行進入到這個文件所在的路徑,可以直接使用 pytest 命令運行,pytest 會找當前目錄以及查找子目錄下所有的test_*.py或*_test.py的文件,把其當作測試文件。在這些文件里,pytest 會收集符合編寫規范的函數,類以及方法,當作測試用例并且執行,執行如下:

    $ pytest

    test_add.py ..F [100%]

    self =

    def test_two(self):

    x = "hello"

    > assert hasattr(x, "check")

    E Asserti: assert False

    E + where False = hasattr("hello", "check")

    test_add.py:18: Asserti

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

    結果分析:執行結果中,F代表用例未通過(斷言錯誤),.代表用例通過。如果有報錯會有詳細的錯誤信息。pytest也支持unittest模式的用例定義。

    Pytest常用參數

    pytest 帶有很多參數,可以使用pytest --help來查看幫助文檔,下面介紹幾種常用的參數:

    ? 無參數

    讀取路徑下所有符合規則的文件,類,方法,函數全部執行。使用方法如下:

    pytest 或者 py.test

    ? -v 參數

    打印詳細運行日志信息,一般在調試的時候加上這個參數,終端會打印出每條用例的詳細日志信息,方便定位問題。使用方法如下:

    pytest -v

    ? -s 參數

    帶控制臺輸出結果,當你的代碼里面有print輸出語句,如果想在運行結果中打印print輸出的代碼,在運行的時候可以添加-s參數,一般在調試的時候使用,使用方法如下:

    pytest -s

    ? -k 參數

    跳過運行某個或者某些用例。應用場景:在測試場景中,開發人員有一部分功能代碼還沒實現,測試人員已經將測試用例設計出來,或者測試人員發現了某功能上的 bug 需要開發人員修復之后再測試這部分有缺陷的測試用例,可以將這部分測試用例在運行的時候暫時跳過,等功能實現或者 bug 解決之后再加入運行。使用方法如下:

    pytest -k "類名"

    pytest -k "方法名"

    pytest -k "類名 and not 方法名" #運行類里所有的方法,不包含某個方法

    ? -x 參數

    遇到用例失敗立即停止運行。

    應用場景:在回歸測試過程中,假如一共有10條基礎用例,當開發人員打完包提交測試的時候,需要先運行這10條基礎用例,全部通過才能提交給測試人員正式測試。如果有一條用例失敗,都將這個版本打回給開發人員。這時就可以添加-x參數,一旦發現有失敗的用例即中止運行。使用方法如下:

    pytest -x

    ? –maxfail 參數

    用例失敗個數達到閥值停止運行。具體用法:

    pytest --maxfail=[num]

    應用場景:在回歸測試過程中,假如一共有10條基礎用例,當開發人員打完包提交測試的時候,需要先運行這10條基礎用例,全部通過才能提交給測試人員正式測試。

    如果運行過程中有 [num] 條用例失敗,即中止運行,后面測試用例都放棄執行,直接退出。這時可以使用--maxfail參數。

    ? -m 參數

    將運行有 @pytest.mark.[標記名] 這個標記的測試用例。應用場景:在自動化測試過程中可以將測試用例添加標簽進行分類,比如登錄功能、搜索功能、購物車功能、訂單結算功能等,在運行的時候可以只運行某個功能的所有的測試用例,比如這個版本只想驗證登錄功能,那就在所有登錄功能的測試用例方法上面加上裝飾符@pytest.mark.login,運行的時候使用命令添加一個-m參數,例如執行pytest -m login命令就可以只執行登錄功能這部分的測試用例。

    使用方法如下:

    pytest -m [標記名]

    ? 運行模式

    pytest提供了多種運行模式,讓開發和調試更得心應手。指定某個模塊,執行單獨一個pytest模塊。

    應用場景:在編寫測試用例的時候,經常會單獨調試某個類,或者某個方法,這時可以使用 Pycharm 里面自帶的調試方式,點擊用例方法名前面的綠色按鈕,也可以使用命令行的方式單獨運行某個用例。

    pytest 中可以使用pytest 文件名.py單獨執行某個 python 文件,也可以使用pytest 文件名.py::類名單獨執行某個文件中的類,使用pytest 文件名.py::類名::方法名單獨執行類中的某個方法。使用方法如下:

    pytest 文件名.py

    pytest 文件名.py::類名

    pytest 文件名.py::類名::方法名

    Pycharm 中運行 pytest 用例

    打開 Pycharm -> 設置 -> Tools -> Python Integrated Tools -> Testing: pytest

    如果設置為 pytest ,需要安裝 pytest,可以直接按照這個頁面的提示點擊“fix”,也可以在 Project interpreter 里面添加 pytest 依賴包。

    安裝完 pytest 之后,編寫的符合規則的測試用例都能被識別出來并且標出一個綠色的執行按鈕,點擊這個按鈕也能執行某個方法或者某個類。例如:

    Pycharm 設置運行方式為 pytest 之后,用例左側會顯示綠色按鈕,可以直接點擊這個按鈕來執行這條用例。

    ?? 復制“下方鏈接”,提升測試核心競爭力!

    >>更多技術文章分享和免費資料領取

    https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=souhu×tamp=1650330644

    責任編輯:Rex_08

    關鍵詞: pytest assert Pytest Python
    推薦閱讀
    欧美国产在线一区,免费看成年视频网页,国产亚洲福利精品一区,亚洲一区二区约美女探花
    <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 主站蜘蛛池模板: 精品在线观看免费| 国色天香论坛社区在线视频| 国产人妖视频一区二区| 久久精品无码一区二区三区不卡| 免费看一毛一级毛片视频| 中文字幕天天躁日日躁狠狠躁免费| 韩国精品视频在线观看| 日本污全彩肉肉无遮挡彩色| 国产天堂在线观看| 久久天天躁狠狠躁夜夜中文字幕| 成人免费福利视频| 日本道色综合久久影院| 国产后入又长又硬| 久久亚洲精品国产亚洲老地址 | 亚洲精品无码久久| 99久久免费看国产精品| 欧美日韩福利视频| 国产精品亲子乱子伦xxxx裸 | 国产无遮挡又黄又爽在线观看| 乱人伦老妇女东北| 香蕉视频久久久| 把腿扒开做爽爽视频在线看| 又粗又长又色又爽视频| caopon国产在线视频| 欧美黑人又大又粗XXXXX| 国产精品国色综合久久| 亚洲AV一二三区成人影片| 麻豆亚洲av熟女国产一区二| 无码人妻一区二区三区免费看| 四虎影视在线影院www| а√在线地址最新版| 波多野结衣大战黑鬼101| 国产精品人成在线观看| 久久夜色精品国产欧美| 美女啪啪网站又黄又免费| 天天爱天天做天天爽天天躁| 亚洲欧美激情在线| 国产小视频91| 扒开内裤直接进| 亚洲色图校园春色| 免费a在线观看|