pytest+allure+jenkins進行接口測試、生成測試報告、結合jenkins進行集成。html
pytest是python的一種單元測試框架,與python自帶的unittest測試框架相似,可是比unittest框架使用起來更簡潔,效率更高java
allure-pytest是python的一個第三方庫。用於鏈接pytest和allure,使它們能夠配合在一塊兒使用。python
allure-pytest基於pytest的原始執行結果生成適用於allure的json格式結果。該json格式結果能夠用於後續適用allure生成html結果。git
一、安裝pytest,命令行或終端中輸入github
1 pip install pytest
二、安裝allure-pytest,安裝成功json
1 pip install allure-pytest
allure-pytest安裝成功後截圖以下。瀏覽器
三、下載安裝JDKoracle
官方下載:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html框架
安裝與配置不做闡述請諒解 編輯器
四、下載安裝Jenkins
安裝與配置不做闡述請諒解
下載allure並配置
一、allure官網下載:https://github.com/allure-framework/allure2/releases
以下圖所示
二、allure2下載下來是一個zip的壓縮包,咱們要解壓至本身的文件目錄下(可解壓放至項目的測試用例下或python安裝目錄下),本身可找到文件便可。
三、打開allure2目錄,找到bin目錄,複製bin文件目錄, 而後進行環境變量的配置,設置環境變量的目的就是讓系統不管在哪一個目錄下均可以運行allure2。
四、環境變量設置:(桌面——個人電腦——右鍵屬性——高級系統配置——環境變量——系統變量——Path——編輯環境變量——把咱們上面複製的目錄路徑新增至環境變量中便可)
設置環境變量,以下圖所示。
五、配置好後,打開cmd終端,輸入allure,出現如下幫助文檔,就說明配置成功了。
Allure裝飾器
上述咱們講了一些理論的知識,下面咱們就來實戰練習一下吧。進一步理解Pytest+allure如何結合應用的。
一、新建testcase文件夾,用來存放測試用例,新建test_Demo.py文件,做爲pytest的具體測試用例文件。在test_Demo.py文件中輸入如下代碼。
1 # test_Demo.py 2 # Creator:wuwei 3 # Date:2020-06-09 4 5 import pytest 6 import requests 7 import allure 8 import sys 9 sys.dont_write_bytecode = True 10 11 @allure.epic('測試描述'.center(30, '*')) 12 @allure.feature('測試模塊') 13 @allure.suite('測試套件') 14 class TestPytestOne(): 15 @allure.story('用戶故事描述:用例一') 16 @allure.title('測試標題:用例一') 17 @allure.description('測試用例描述:用例一') 18 @allure.testcase('測試用例地址:https://www.baidu.com/') 19 @allure.tag('測試用例標籤:用例一') 20 def test_one(self): 21 print('執行第一個用例') 22 assert 1 == 1 23 24 @allure.story('用戶故事描述:用例二') 25 @allure.title('測試標題:用例二') 26 @allure.description('測試用例描述:用例二') 27 @allure.testcase('測試用例地址:https://www.sogou.com/') 28 @allure.tag('測試用例標籤:用例二') 29 def test_two(self,action): 30 print('執行第二個用例') 31 assert True == True 32 33 # pytest運行 34 if __name__ == "__main__": 35 pytest.main(['-s', '-v', 'test_Demo.py', '-q', '--alluredir', '../reports'])
二、咱們再來建立一個conftest.py,conftest用來共享數據及不一樣層次之間共享使用的文件,測試用例的前置和後置中通常均可以用到的。
1 # conftest.py 2 # Creator:wuwei 3 # Date:2020-06-09 4 5 import pytest 6 import sys 7 sys.dont_write_bytecode = True 8 9 @pytest.fixture() 10 def action(): 11 print("測試用例開始".center(30, '*')) 12 yield 13 print("測試用例結束".center(30, '*'))
三、運行test_Demo.py文件,test_Demo文件中已經pytest+allure的結合,可查看allure的運行結果,可看出在根目錄中生成了一個reports文件夾,其中生成了測試報告的json文件,這裏面的json文件可經過allure生成html的測試報告。
運行test_Demo.py,終端顯示以下圖所示。
生成的Json格式的測試報告,以下圖所示。
四、使用allure將json文件生成html的測試報告,定位至項目文件根目錄下,運行如下命令,會在項目根目錄下生成一個名爲allure_reports的文件夾,用來存放html測試報告。命令下如所示。
1 allure generate reports -o allure_reports/
成功運行allure,結果以下圖所示。
項目根目錄下的allure_reports文件,存放的是allure生成的測試報告。可看出文件下有一個HTML文件,可經過Python的編輯器Pycharm來打開該HTML文件(測試報告),或可經過allure命令來打開該HTML,展現HTML測試報告。以下所示。
測試報告文件,HTML測試報告以下。
allure命令打開HTML測試報告。命令以下所示。
1 allure open allure_reports/
以下圖所示。
打開生成的HTML測試報告以下圖所示。
一、Jenkins插件網站上下載allure插件最新版本:
http://mirrors.jenkins-ci.org/plugins/allure-jenkins-plugin/
二、Jenkins的安裝我已經在Postman+Newman+Git+Jenkins的篇章中講過了,沒看小夥伴能夠看一下那篇文章。確認Jenkins服務是否開啓。確認開啓後,在瀏覽器中輸入:http://localhost:8080/,進入Jenkins配置頁面。
三、http://localhost:8080/,登陸Jenkins的頁面,在管理Jenkins——插件管理——高級中找到上傳插件。將(1)步驟中下載的.hpi的文件上傳至jenkins上。
上傳安裝好的allure-jenkins-plugin的插件,安裝完成併成功,是藍色圓點顯示,因我已經安裝過一次,會提示已經安裝,重啓Jenkins便可生效。(注意:不是關閉瀏覽器從新打開,而是重啓Jenkins服務)
四、全局變量中配置allure路徑與JDK的路徑,
配置JDK安裝的路徑,以下圖所示。
配置allure安裝的路徑,以下圖所示。
五、新建Item,配置構建後的allure測試報告生成。這裏配置Pytest執行完成以後,生成的allure文件所在的目錄位置。
項目中生成allure的json測試報告的位置。需與下面構建後操做中的Results的Path文件一致。
構建後操做的allure生成測試報告的配置,以下圖所示
六、配置構建命令。就是上述在cmd中運行項目時的命令。以下圖所示。
注意:運行後發現有報錯。「Build step 'Execute Windows batch command' marked build as failure」,解決方案,在運行項目的命令後添加exit 0。以下圖所示。
七、修改運行命令後咱們再來運行一下。咱們可發現運行後,allure裏面沒任務數據。由於咱們還沒設置運行的項目路徑。設置工做空間,打開工做空間目錄,將咱們的項目複製到jenkins的工做目錄中。
咱們可將代碼傳至GitHub上,在Jenkins中設置相關Github項目的配置,也可進行Jenkins部署。我在Postman+Newman+Git+Jenkins這篇博客裏就應用到了。有興趣的可參考看看這篇Jenkins如何Git項目。在這裏咱們使用本地項目來部署。
測試報告無數據由於工做空間裏面沒有項目配置。
複製項目至Jenkins工做空間的目錄中。
八、添加項目後,咱們再運行一下,藍點則爲運行成功,可看到後面已經生成了allure的測試報告了。可直接點擊後面的alluree圖標跳轉至HTML的測試報告。以下圖所示。
allure生成的HTML測試報告
上述咱們聊了下pytest+allure+jenkins如何結合集成一塊兒使用的,本地啓動jenkins,運行項目,調用allure生成測試報告。也簡單的作了一個小Demo。後期我將結合Requests接口測試和seleniumWeb測試應用至具體項目中。