目錄
一、環境部署
二、用例設計原則
三、判斷用例執行結果的方法
四、yaml配置檔案
五、常用的執行用例的方法
六、測試報告的生成
首先python環境是必須要裝的,其次是pycharm和pytest庫。其它可以按需要選擇安裝,後面可能會用到:
庫/外掛程式/工具
安裝方法
用途安裝python 3.x
安裝pycharm
安裝pytest庫
pip install pytest
pytest庫
安裝yaml
pip install pyyaml
配置檔案
安裝pytest -html
pip install pytest-html
生成html報告
安裝allure
pip install allure-pytest
描述測試用例
主要有四點:
1、測試用例的檔名以test_*.py或*_test.py命名;
2、方法或函式以test_開頭;
3、類以test_開頭;
4、所有的包必須要有__init__.py檔案。
另外,想要直接在pycharm上執行測試用例,用例後必須加上:
if __name__ == "__main__":
pytest.main('-q 用例.py')
pytest通過assert斷言來設定用例的預期執行結果,並判斷實際執行結果是否與之一致,使用方法如下:
1、測試大小是否相等, assert可以使用直接使用「==」、「!=」、「」、「>=」、"<=" 等符號來比較相等、不相等、小於、大於、大於等於和小於等於,例如:
assert 1 != 2
2、測試包含和不包含,assert 可以直接使用 in 和not in 來比較包含與不包含,例如:
assert a in b
3、測試true或false,assert可以不需要任何輔助符號,直接判斷物件是否為ture, assert not 用於判斷是否為false,例如:
assert 1
斷言失敗一般可以看到以下輸出,代表用例的執行結果failure與我預期的success不符,即這條用例執行失敗:
當然,也可以如下所示,指定斷言失敗的返回資訊:
assert a % 2 == 0, "值為奇數,應為偶數"
除此之外,pytest可以在斷言的比較中提供豐富的上下文資訊。例如:
def test_set_comparsion():
set1 = set("111")
set2 = set("222")
assert set1 == set2
1、yaml(yet another markup language):是一種專門用來寫配置檔案的語言。
2、yaml的基本語法規則:
大小寫敏感;
使用縮排表示層級關係(注意:這裡只允許使用空格來表示縮排,空格數目不重要,不允許使用tab鍵);
相同層級的元素左側需對齊;
使用 # 表示注釋;
3、yaml支援的三種資料結構:
陣列:一組按次序排列的值,又稱為序列(sequence) / 列表(list);
純量(scalars):單個的、不可再分的值。字串、布林值、整數、浮點數、null、時間、日期;
4、讀取和轉換方法
用open方法讀取yaml檔案的資料;
再通過load方法轉成字典;
比如說,我把linux虛擬機器的一些資訊放到config.yaml檔案裡:
hostname: '10.2.12.87' #ip
port: 22
username: 'root'
password: '123456'
那麼在用例中,就可以直接讀取config.yaml檔案,使用這些資料:
file = open("/testdata/config.yaml", encoding='utf-8')
res = yaml.load(file, loader=yaml.fullloader)
hostname = res['hostname']
port = res['port']
username = res['username']
password = res['password']
1、執行某個資料夾下的所有用例:
pytest 資料夾名/
2、執行單條用例
pytest 用例.py
3、-k expression按關鍵字匹配
pytest -k 'test_method or test_other'
將執行名稱包含'test_method' 或 'test_other'的所有方法或類
4、-m markexpr標記表示式
將執行用@ pytest.mark.slow裝飾器修飾的所有測試
5、-v 增加冗餘的用例執行輸出;-q減少冗餘的用例執行輸出
6、-x 一旦遇到錯誤立即停止執行
7、--maxfail=num 錯誤達到一定的數量時停止執行
8、--lf(--last-failed)只執行上次執行失敗的用例
9、--ff(--failed-first)優先執行上次執行失敗的用例,再執行其他用例
10、-s 列印用例裡print的內容
pytest-html模組用於生成測試報告,如果想生成測試報告,可以按照這樣的方法執行用例:
pytest 用例.py --html=/路徑/report.html
或者這樣執行,可以把css樣式合併到html裡:
pytest --html=/路徑/report.html --self=contained-html
報告的效果是這樣的:
測試框架 Pytest框架(一)
目錄 pytest的安裝與執行 安裝 執行執行方式及命令 ide中執行 命令列終端執行 生成報告 報告中的亂碼處理 檢查點 斷言 基於python語言的自動化常用的框架有三種,unittest pytest rf。前兩款更多的用於白盒單元測試,rf可以很好的做系統測試使用。安裝pytest pip ...
Pytest測試框架(一)
pip install u pytest 用下面的命令去檢查一下pytest是否成功安裝 pytest version this is pytest version 5.4.1 建立名為test 001.py的檔案,敲如下內容 def reverse string return string 1 d...
自動化測試框架pytest安裝
想要作為一名合格的軟體測試工程師,就必須要掌握自動化測試。所以今天就帶大家來認識自動化測試框架,說起自動化測試框架,大家應該也都聽說過兩種常見的自動化測試框架,分別是pytest和unittest。首先先為大家介紹一下,這兩種自動化測試框架的優缺點,unittest也是一款自動化測試框架,它是pyt...