pytest測試框架 一 安裝及入門

2021-10-12 16:39:39 字數 3221 閱讀 8539

目錄

一、環境部署

二、用例設計原則

三、判斷用例執行結果的方法

四、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...