升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

博為峰網校發表於2020-02-17


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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

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

第一步,安裝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+Pytest框架在Jenkins上生成Allure測試報告

第二步,安裝好依賴庫以後,下載並解壓allure命令列工具,用於後面步驟執行allure命令,下載地址一:;下載地址二:。把解壓後的allure資料夾,設定成環境變數。新增allure到環境變數PATH(\安裝路徑\allure-commandline\bin)。

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

第四步,透過pytest編寫自動化測試指令碼,如下圖。編寫pytest測試用例非常簡單,只需要按照下面的規則:

· 測試檔案以test_開頭

· 測試類以Test開頭

· 測試函式以test_開頭

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

第七步,建立好測試用例以後,在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+Pytest框架在Jenkins上生成Allure測試報告

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

進階篇--定製報告

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

為了實現上圖的樣式:allure提供瞭如下幾個裝飾器。@allure.feature('前臺子系統') 表示第一層分組,一般用來表示測試用例屬於哪個模組。@allure.story('註冊功能')表示第二層分組,一般用來表示測試用例屬於哪個功能。@allure.title('正常註冊測試')用來表示測試用例的標題。@allure.description('輸入正確的使用者資訊,註冊賬號')用來顯示測試用例中的描述資訊。具體程式碼如下圖:

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

高階篇--持續整合

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

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

1.安裝jdk

2.解壓tomcat

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

4.雙擊開啟bin目錄下面的startup.bat,這時會開啟一個dos視窗,注意永遠不要關閉這個視窗,否則就不能訪問jenkins網站了。

5.等1分鐘左右,開啟瀏覽器,輸入網址,多重新整理幾次,直到看到下圖

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

7.複製檔案中的內容到‘管理員密碼’輸入框中

8.點下一步

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

10.等所有的外掛下載好以後, 設定使用者名稱和密碼。

11.登入進入主介面。

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

1.在主頁點選“新建”

2.選擇自由風格的軟體專案

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

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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+Pytest框架在Jenkins上生成Allure測試報告

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

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

升職加薪利器:Python+Pytest框架在Jenkins上生成Allure測試報告

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

加我VX:17324089390  回覆關鍵詞“測試”領取限量軟體測試學習資料哦~~

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2675925/,如需轉載,請註明出處,否則將追究法律責任。

相關文章