測試框架 Pytest框架(一)

2021-10-10 06:24:32 字數 2579 閱讀 3390

目錄

pytest的安裝與執行 安裝

執行執行方式及命令

ide中執行

命令列終端執行

生成報告

報告中的亂碼處理

檢查點(斷言)

基於python語言的自動化常用的框架有三種,unittest、pytest、rf。前兩款更多的用於白盒單元測試,rf可以很好的做系統測試使用。

安裝pytest:pip install pytest

安裝pytest的報告外掛程式:pip install pytest-html

1、如果未指定命令列引數,則從testpath(如果已配置)或當前目錄開始收集。如果命令列引數,指定了目錄、檔名或node id的任何組合,則按引數來找尋找。

2、找尋過程會遞迴到目錄中,除非它們匹配上norecursedirs。

3、在這些目錄中,搜尋由其測試包名稱匯入的 test_*.py 或 *_test.py 檔案。再從這些檔案中,收集如下測試項:test為字首的 函式,test為字首的類裡面的test為字首的方法(注意大小寫,class類的test大寫,def方法中test小寫)

**示例 

class test_rundemo:

def test_001(self):

print('行到水窮處,坐看雲起時')

def test_002(self):

print('判斷整數和字元是否相等')

assert 1 == '1',"整數不等於字元"

建立乙個如上的**,執行上面的**,執行的方式

在pycharm終端視窗執行,使用pytest命令執行,執行機制會自動匹配當前專案檔案目錄中符合pytest要求的所有檔案,執行 pytest時,如果命令列沒有指定目標目錄或者檔案, 它會自動搜尋當前目錄下所有符合條件的檔案、類、函式。執行結果如下:

這種執行結果很簡單,如果測試通過,會在執行的結果處用綠色的點表示,如果不通過則會表示錯誤用紅色的f表示,並在下方顯示執行失敗的用例的內容,如下圖:

但是有的時候我們需要對通過的測試用例也要檢視詳細內容,如上面的**中的列印內容以及想得到更詳細的執行資訊,包括每個測試類、測試函式的名字,這時在使用pytest命令的時候就需要新增引數:

引數 -s   可以看到執行後的結果中多了列印的內容

引數 -v   顯示執行的測試用例的類名和函式名

引數 **  這裡的星號表示我們需要執行的具體的檔案目錄的名字,因為好多時候我們不需要執行所有的用例,只是相關套件中的用例

如現在執行cases目錄中的所有用例檔案,命令為pytest -sv cases

在pc命令列視窗執行,需要先切換到專案下,使用python執行先執行pytest,

python -m pytest -sv cases,執行結果如下:

前面安裝pytest的時候,同時安裝了pytest-html,要在執行時候同時生產html報告只需要在pytest命令中增加引數:pytest -v cases --html=report.html --self-contained-html

--html=後面指明的是生成報告的檔名,如果指明具體的路徑,生成的報告就在當前執行的**檔案目錄下,如果要指明儲存的位置,引數要詳細到儲存報告檔案的路徑及報告檔名,如下生成到桌面:pytest -v cases --html=c:\users\js-143\desktop\pytest測試報告\report.html --self-contained-html(注意不要新增引數-s,否則測試報告中對於通過用例會不顯示日誌內容

)如果測試套件或者用例命名中有中文會出現亂碼問題,將上面**中的class類和def方法的名稱中新增漢字,執行後的報告中有亂碼,如下:

解決方法:找到site-packages\pytest_html\plugin.py檔案,修改其中的testresult類,修改為下面的內容:

class testresult:

def __init__(self, outcome, report, logfile, config):

# 源**中的這行進行注釋,防止以後要恢復

# self.test_id = report.nodeid.encode("utf-8").decode("unicode_escape")

# 將上面一行**改為下面這行

self.test_id = report.nodeid

pytest中用例的檢查點直接用python的assert斷言。

assert後面的表示式結果為true,就是檢查點通過,結果為false,就是檢查點不通過。

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框架基礎(一)

1.testcase測試用例 2.lib庫 3.報告 loghtml 4.data測試用例檔案 excel 5.config配置檔案 注意事項 py測試檔案必須以test 開頭 或者以 test結尾 測試類必須以test開頭,並且不能有init方法 測試方法必須以test 開頭 斷言必須使用asse...

pytest測試框架 一 安裝及入門

目錄 一 環境部署 二 用例設計原則 三 判斷用例執行結果的方法 四 yaml配置檔案 五 常用的執行用例的方法 六 測試報告的生成 首先python環境是必須要裝的,其次是pycharm和pytest庫。其它可以按需要選擇安裝,後面可能會用到 庫 外掛程式 工具 安裝方法 用途安裝python 3...