1.概述
selenium:html
基於JavaScript代碼庫的自動化測試框架,經過腳本語言,模擬用戶行爲操做,最接近用戶真實場景,實現對web自動測試。python
Selenium,是目前的最火爆企業最主流的webUI自動化框架web
pytest:面試
pytest是一個很是成熟的全功能的Python測試框架,是unittest框架的擴展,主要特色有如下幾點:多線程
一、簡單靈活,很是方便的組織自動化測試用例;併發
二、支持參數化,能夠細粒度地控制要測試的測試用例;app
三、可以支持簡單的單元測試和複雜的功能測試,好比web端selenium/移動端appnium等自動化測試、request接口自動化測試框架
四、pytest具備不少第三方插件,而且能夠自定義擴展,好比測試報告生成,失敗重運行機制函數
五、測試用例的skip和fail處理;單元測試
六、結合業界最美的測試報告allure+Jenkins,持續集成
2.環境搭建
pip install -U pytest
pytest-xdist #多線程
pip install -U pytest-rerunfailures #重試運行cases
pip install pytest-html#生成測試報告
pytest --version #會展現當前已安裝版本
3.編寫規則
編寫pytest測試樣例很是簡單,只須要按照下面的規則:
測試文件以test_開頭(以_test結尾也能夠)
測試類以Test開頭,而且不能帶有 init方法
測試函數以test_開頭
斷言使用基本的assert便可
4.selenium+pytest案例實操
import pytest #引入pytest包
def test_a(): # test開頭的測試函數
import pytest # 引入pytest包 def test_a(): # test開頭的測試函數 print("------->test_a") assert 1 # 斷言成功 def test_b(): print("------->test_b") assert 0 # 斷言失敗 if __name__ == '__main__': pytest.main(['-s', 'class01.py'])
能夠包含一個或多個Test開頭的測試類,test_開頭的函數
1.測試類主函數模式
pytest.main(['-s', 'test.py'])
2.命令行模式運行
pytest文件路徑/測試文件名
5.擴展插件
5.1.測試報告: pytest-html
pytest.main(['-s','test.py','--html=./report/result.html'])
:表示當前路徑下生成report文件夾,result.html文件
5.2批量運行用例:pytest-xdist
pytest.main(['-s','test.py','--html=./report/result.html','-n=2'])
-n=2表示2個線程併發運行全部的測試用例
5.3 allure測試報告:allure-pytest
運行用例:pytest.main(['-s', '-q', '--alluredir', './report/xml'])
pytest測試目標文件 --alluredir 數據目錄
運行後的結果,是生成xml的數據集合
生成報告:allure generate --clean ./report/xml/ -o ./results/html/
第一個是數據集目錄,第二個是生成報告目錄
-o是指向目標生成測試報告的目錄;
6.conftest配置
當自動化用例愈來愈龐大的時候,不少用例的數據能夠共享,複用,讓用例腳本可讀性,維護性更高,好比登陸等
conftest.py配置裏能夠實現數據共享,好比py跨文件共享前置
conftest.py配置腳本名稱是固定的,不能更名稱
不須要import導入 conftest.py,pytest用例會自動查找
自從使用了pytest框架,愛了愛了,深深的感覺到它的可擴展性和靈活性,老闆不再用擔憂個人自動化效率低。
加入313782132,羣裏有軟件測試學習資料,面試技巧、內推機會。助力你進大廠、升職加薪。