最近采用jenkins+python+pytest+allure寫了一些自動化測試用例。碰到這樣一種場景:如果我創建了2個測試任務,測試任務1包含2個測試用例test_a.py和test_b.py,測試任務2包含一個測試用例test_c.py。
前提:需要在jenkins上面配置allure、jdk地址
一. 常規操作
假設我的代碼目錄結構有如下3個測試用例:
然后我在jenkins上面核心配置運行他們,並展示allure上面
note: 上面的\autotest\target\allure-results目錄需要在本地jenkins目錄中指定好。
build后發現如下結果:
test_a.py和test_b.py、test_c.py都屬於同一個測試套example02.
二. 生成不同的suite,並且不同的suite分開展示
首先在准備如下目錄結構:
然后修改jenkins配置如下:
這樣生成的報告就有兩個測試套了。
總結:pytest中的測試套感覺就是一個測試文件目錄對應一個測試套。和testng中不一樣,可以隨便添加測試類放到一個suit.xml文件中。我們可以根據任務選取的不同,從而來生成不同的suite文件。
三. 通過新建test.py文件來存儲要本次執行的所有用例
1.方法一:可以通過pytest.main方式
但是這種方式必須放在非test_開頭或者_test結尾的py文件中,可以放在testrun.py文件中。比如有一個testrun.py:
import pytest if __name__ == '__main__': pytest.main(["-s", "test_a.py", "test_b.py"])
這樣testrun.py運行后就會執行test_a.py和test_b.py兩個用例
2.方法二:通過新建pytest用例,來存儲本次要執行的測試用例,比如test_all.py,在里頭需要執行5個測試用例test_a.py,test_b.py,test_c.py,test_d.py,test_e.py
test_all.py中的實現如下:
from src.example02.test_a import * from src.example02.test_b import * from src.example02.test_c import * from src.example03.test_d import * from src.example03.test_e import *
build結束后:
可以發現,test_all.py就是我們的測試套,它包含了5個測試用例。這就可以不同的測試任務對應不同的測試套,不同對的測試套下面可以放各種組合的用例。一個用例可以放在不同的測試套中。
原創文章,轉載請注明出處!(寫的是核心的配置、代碼,如有不懂,歡迎留言交流)