學會這個,助你升值加薪自動化框架之python+selenium+pytest

 
  
 

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案例實操

image.png
image.png

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文件

 

image.png
image.png

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用例會自動查找

 

image.png
image.png

自從使用了pytest框架,愛了愛了,深深的感覺到它的可擴展性和靈活性,老闆不再用擔憂個人自動化效率低。

加入313782132,羣裏有軟件測試學習資料,面試技巧、內推機會。助力你進大廠、升職加薪。

相關文章
相關標籤/搜索