Pytest背景與優勢
- pytest能夠支持簡單的單元測試和複雜的功能測試;
- pytest可以結合Requests實現接口測試;結合Selenium、Appium實現自動化功能測試;
- 使用pytest結合Allure集成到Jenkins中可以實現持續集成;
- pytest支持315種以上的插件,擁有豐富的第三方插件,而且支持定製化插件開發;
- pytest兼容unittest。
Pytest安裝
方法一:pip install pytest或者pip install -U pytest
方法二:Pycharm直接安裝
Pytest命名規則
注意:測試類中不可以添加__init__構造函數
類型 | 規則 |
---|---|
文件 | test_ 開頭 或者 _test 結尾 |
類 | Test 開頭 |
方法/函數 | test_ 開頭 |
Pytest用例結構
由三部分構成:用例名稱、用例步驟、用例斷言
測試用例示例
def test_XXX(self):
# 測試步驟1
# 測試步驟2
# 斷言 實際結果 對比 預期結果
assert ActualResult == ExpectedResult
類級別的用例示例
class TestXXX:
def setup(self):
# 資源準備
pass
def teardown(self):
# 資源銷燬
pass
def test_XXX(self):
# 測試步驟1
# 測試步驟2
# 斷言 實際結果 對比 預期結果
assert ActualResult == ExpectedResult
Pytest測試用例斷言
定義
斷言(assert):是一種在程序中的一階邏輯(如:一個結果爲真或假的邏輯式判斷),目的是表示與驗證軟件開發者預期的結果。
當程序執行到斷言的位置時,對應的斷言應該爲真。
若斷言不爲真時,程序會自動終止,並給出錯誤提示。
用法
assert <表達式 >
assert <表達式 >,<描述>
Pytest測試框架結構(setup/teardown)
測試裝置介紹
類型 | 規則 |
---|---|
setup_module/teardown_module | 全局模塊級 |
setup_class/teardown_class | 類級,只在類中前後運行一次 |
setup_function/teardown_function | 函數級,在類外 |
setup_method/teardown_method | 方法級,類中的每個方法執行前後 |
setup/teardown | 在類中,運行在調用方法的前後(重點) |