目錄
參考鏈接
https://docs.pytest.org/en/stable/ 3
注意
起名字,類,包或者方法,都最好不要起關鍵字的名字,比如 os,sys, http , appium, selenium
自動化測試用例的設計基本原則
-
1.一個用例為一個完整的場景,從用戶登錄系統到 最終退出並關閉瀏覽器
2.一個用例只驗證一個功能點,不要試圖在用戶登錄系統后把所有功能都驗證一遍
3.盡可能少的編寫逆向邏輯用例。一方面因為逆向邏輯的用力很多(例如,手機號輸錯有幾十種情況),另一個方面自動化腳本本身比較脆弱,復雜的逆向邏輯用例實現起來比較麻煩且容易出錯。
4.用例與用例之間盡量避免產生依賴
5.一條用例完成測試之后需要對測試場景進行還原,以免影響其他用例的執行
pytest介紹
pytest測試用例的識別、運行
pytest 框架結構
- import pytest 類似的setup,teardown同樣更靈活,
- 模塊級(setup_module/teardown_module)模塊始末,全局的( 優先最高 )
- 函數級(setup_function/teardown_function)只對函數用例生效(不在類中)
- 類級(setup_class/teardown_class)只在類中前后運行一次(在類中)
- 方法級(setup_method/teardown_methond)開始於方法始末(在類中)
- 類里面的(setup/teardown)運行在調用方法的前后
Pytest 常用參數解析
pytest/py.test [包名] 執行包下所有的用例
pytest -v 打印詳細運行日志信息
pytest -s s是帶控制台輸出結果,也是輸出詳細
pytest -k "add” 匹配所有名稱中包含add的用例,可以使用 and ,or , not等邏輯運算
pytest -m [標記名] @pytest.mark.[標記名] 將運行有這個標記的測試用例
pytest -x 文件名 一旦運行到報錯就停止 運行
pytest - -maxfail=[num] 當運行錯誤達到num的時候就停止 運行
pytest 文件名.py 執行單獨一個pytest模塊
pytest 文件名.py::類名 運行某個模塊里面某個類
pytest 文件名.py::類名::方法名 運行某個模塊里面某個類里面的方法
pytest --collect-only 給定配置下顯示那些用例會運行只收集用例,而不執行
@pytest.mark.xfail
@pytest.mark.skipif(1 == 2, reason='skip賦值給變量,可多處調用')
pytest --junitxml=path 生成執行結果xml文件
pytest 包名執行某個包
pytest --junitxml="./default"
pytest --setup-show 回溯fixture的執行過程
Pytest fixture 用法

fixture 用法
- Fixture 是為了測試⽤例的執⾏,初始化⼀些數據和⽅法
- 實現了 unittest ⾥面的 setUp, tearDown 功能,但⽐ setUp, tearDown 更靈活
- 直接通過函數名字調⽤或usefixtures
- 允許使用多個fixture
- 使用 autouse,如果要返回值,需要傳fixture函數名
-
- -setup-show 回溯 fixture 的執行過程
fixture 作用域
- fixture 里面有一個參數 scope,通過 scope 可以控制 fixture 的作用范圍,根據作用范圍大小划分:session> module> class> function,具體作用范圍如下:
-
- function 函數或者方法級別都會被調用
-
- class 類級別調用一次
-
- module 模塊級別調用一次
-
- session 是多個文件調用一次(可以跨.py文件調用,每個.py文件就是module)
-
conftest.py 用法
- conftest.py配置需要注意:
- conftest.py文件名是不能換的
- conftest.py與運行的用例要在同一個package下,並且有__init__.py文件
- 不需要import導入conftest.py,pytest用例會自動查找
- 所有同目錄測試文件運行前都會執行conftest.py文件
- 全局的配置和前期工作都可以寫在這里,放在某個包下,就是這 個包數據共享的地方。
- 如果不同層級的包下都有conftest.py文件,那么內層目錄的conftest.py文件中的方法會覆蓋外部的conftest.py文件中的方法(重名的方法)
Pytest 參數化與數據驅動
pytest 常用插件
課后作業: 1、補全計算器(加減乘除)的測試用例 2、使用數據驅動完成測試用例的自動生成 3、conftest.py中創建fixture 完成setup和teardown 4、在調用測試方法之前打印【開始計算】,在調用測試方法之后打印【計算結束】




