天天看點

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

在自動化測試執行之後,生成一個美觀大方的測試報告,也是測試過程中,非常最要的一環。測試報告直接反應了測試過程中發現的問題,分析測試報告是解決問題的最重要手段。那麼一個專業的測試報告應該長什麼樣呢?廢話不多說,直接上圖:

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

在上面這張測試報告中,整體用中文顯示,易于閱讀;左側導航欄包含總覽、分類、測試用例清單、圖表等多個子產品;右側的總覽頁面中包含了用例數、成功率、曆史趨勢圖、用例分類等多張表格;頁面布局簡約大方。

那麼如何生成這樣一份測試報告呢?

第一步,安裝Python依賴庫。兩種方式任選其一,第一種在dos視窗中,輸入下面三個指令:

· pip3 install pytest

· pip3 install allure-python

· pip3 install allure-python-commons

第二種方法,打開Pycharm,點選File,點選Settings,選擇project interpreter,點選右上角+加号按鈕,搜尋并選擇pytest,點選install package;搜尋allure,分别選擇allure-python和allure-python-commons,點選install package。如下圖。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

第二步,安裝好依賴庫以後,下載下傳并解壓allure指令行工具,用于後面步驟執行allure指令,下載下傳位址一:https://pan.baidu.com/s/1YkgYpvfmH_I26ZPAJ1OF0A;下載下傳位址二:https://github.com/allure-framework/allure-pytest。把解壓後的allure檔案夾,設定成環境變量。添加allure到環境變量PATH(\安裝路徑\allure-commandline\bin)。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

第三步,确認allure安裝成功,在指令行輸入:allure --version,能展示allure安裝版本2.12.1即可。如果報錯,可能是因為電腦中沒有安裝jdk1.8造成的,這時安裝一個jdk1.8就好了。

第四步,通過pytest編寫自動化測試腳本,如下圖。編寫pytest測試用例非常簡單,隻需要按照下面的規則:

· 測試檔案以test_開頭

· 測試類以Test開頭

· 測試函數以test_開頭

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

第五步,執行測試用例。點選Pycharm底部Terminal;或者打開dos視窗,切換到目前項目檔案夾下,執行指令 pytest -s -q。Terminal應該能正常顯示列印結果如下。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

第六步,為了測試報告内容豐滿,可以用第五步的方法,多建立一些測試用例。如下圖,也可以把用例放到多個包裡面。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

第七步,建立好測試用例以後,在Terminal中執行指令:pytest -s -q --alluredir allure-xml。這時就會運作測試用例。-s表示允許終端在測試運作時輸出結果,-q表示簡化輸出結果,--alluredir表示把生成的中間結果儲存到allure-xml檔案夾。

第八步,等測試用例執行完畢。繼續在Terminal中執行指令:allure generate allure-xml -o allure-report --clean。這樣就會根據allure-xml檔案夾裡的中間結果在allure-report檔案夾中生成一個測試報告。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

第九步,右鍵allure-report檔案夾中的index.html檔案,選擇open in browser,再點選一個浏覽器,比如chrome。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

第十步,這時一個美觀的測試報告就會顯示如下了,快試試吧。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

進階篇--定制報告

這時,點選左側導航欄中的‘功能’,展開以後,測試結果顯示如下:

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

在這裡,我們可以看到所有的測試用例直接顯示為方法名,這樣的可讀性不好。我們可以通過allure自帶的裝飾器給這些測試用例重新用中文起名,并且分類。如下圖:

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

為了實作上圖的樣式:allure提供了如下幾個裝飾器。@allure.feature('前台子系統') 表示第一層分組,一般用來表示測試用例屬于哪個子產品。@allure.story('注冊功能')表示第二層分組,一般用來表示測試用例屬于哪個功能。@allure.title('正常注冊測試')用來表示測試用例的标題。@allure.description('輸入正确的使用者資訊,新增賬號')用來顯示測試用例中的描述資訊。具體代碼如下圖:

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

除了上面這些裝飾器以外,allure測試報告中幾乎支援手工測試用例的所有要素,比如操作步驟,預置條件,後置操作,附件截圖等等。大家可以自己嘗試一下,其他要素我們後續再講。

進階篇--持續內建

在企業應用中,自動化測試往往需要頻繁執行,比如每隔一小時自動執行測試一次。執行完成後應該發郵件提醒tester,tester隻需要打開郵件就可以看到生成的測試報告。這又是怎麼做的呢?

第一步,準備環境,大家前面應該已經安裝過jdk了,我們從Tomcat官網下載下傳最新的tomcat9,Jenkins官方網站下載下傳最新的war包;也可以從我前面分享給大家的網址下載下傳:https://pan.baidu.com/s/1YkgYpvfmH_I26ZPAJ1OF0A。

1.安裝jdk

2.解壓tomcat

3.複制jenkins.war到tomcat的webapps目錄下

4.輕按兩下打開bin目錄下面的startup.bat,這時會打開一個dos視窗,注意永遠不要關閉這個視窗,否則就不能通路jenkins網站了。

5.等1分鐘左右,打開浏覽器,輸入網址http://localhost:8088/jenkins/,多重新整理幾次,直到看到下圖

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

6.根據網頁中的提示,用記事本打開提示C:\Users\......\.jenkins\secrets檔案夾中的檔案initialAdminpassword。

7.複制檔案中的内容到‘管理者密碼’輸入框中

8.點下一步

9.在custom jenkins頁面選擇suggested jenkins plugin(安裝推薦的插件)。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

10.等所有的插件下載下傳好以後, 設定使用者名和密碼。

11.登入進入主界面。

第二步,進入到jenkins主界面以後,我們來建立第一個jenkins任務。

1.在首頁點選“建立”

2.選擇自由風格的軟體項目

3.點選general配置中的‘進階’,選擇‘自定義工作空間’,設定成你的項目路徑,比如我的項目在這個路徑中C:\Users\51Testing\PycharmProjects\changcheng。

4.在建構觸發器中,選擇window批處理程式,在jmeter輸入框中,輸入pytest -s -q。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

5.勾標明時建構,輸入0 18 15 6 1,表示測試用例将在6月15日星期一晚上18點正執行一次,這裡可以寫5個數字,每個數字之間用空格間隔。分别表示:分鐘、小時、日期幾号、幾月和星期幾。除了數字,也可用特殊符号表示時間:星号*代表所有有效取值、橫線-表示從幾到幾、除号/表示間隔時間、逗号表示枚舉。例如,要想每天晚上18點執行一次,可以寫0 18 * * *。大家可以自行嘗試,設定各種時間間隔。

第三步,Jenkins內建allure測試報告。

1.先安裝Allure插件。打開Jenkins,首頁點選‘系統管理’。

2.選擇‘插件管理’。

3.選擇‘可選插件’,搜尋輸入框輸入Allure,搜尋出來的名字就叫Allure,當安裝後名字會變為Allure Jenkins Plugin。

4.jenkins配置頁,選擇‘全局工具配置’。

5.全局工具配置頁下拉到最後一項,你會看到‘Allure Commandline’項, 按下圖配置之後儲存即可。

6.在建構觸發器中,選擇window批處理程式,在jmeter輸入框中,把前面輸入的pytest -s -q改成call pytest -s -q --alluredir ./allure-xml。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

7.在‘建構後操作’(Post-build Actions)中選擇allure report,輸入Path名稱allure-xml,這裡的path名稱表示在項目根目錄下生成此檔案夾,檔案夾用來儲存生成html報告之前的中間測試結果。

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

8.點選‘儲存’,點選‘立即建構’。

9.運作結束後,點選‘Allure Report’,展示圖如下:

python自動化測試報告 之 allure_Pytest+ Allure + Jenkins 自動化測試報告

這樣我們就完成了pytest + allure + jenkins 的內建配置。更多jenkins進階功能,請期待我的後續文章。