Pytest+Allure初體驗
Pytest+Allure初體驗
轉自:https://mp.weixin.qq.com/s/zF_YIPqpS_nMP4K8KTLYGw
最近團隊的虛擬小組在做ui自動化測試,使用的框架有pytest框架和allure框架,結合這兩個框架,最終可以生成規範、格式統一、美觀的測試報告。下面簡單介紹一下~
01
pytest介紹
pytest是python的第三方測試框架,是基於unittest的擴充套件框架。
根據pytest的官方網站介紹,它具有如下特點:
1、非常容易上手,入門簡單,文件豐富
2、能夠支援簡單的單元測試和複雜的功能測試
3、支援引數化
4、 執行測試過程中可以將某些測試跳過,或者對某些預期失敗的case標記成失敗
5、支援重複執行失敗的case
6、支援執行由nose, unittest編寫的測試case
7、具有很多第三方外掛,並且可以自定義擴充套件
8、方便的和持續整合工具整合
02
如何編寫pytest測試用例
示例如下:
通過執行測試檔案的方法(在test_py.py所在目錄下執行pytest或者pytest -q(q是quiet的簡拼),會尋找當前目錄及其子目錄下以test開頭的py檔案或者以test結尾的py檔案。
找到檔案後,在檔案中找到以test開頭函式並執行)。
執行上面的測試:
測試結果中可以看到,該測試共執行了兩個測試樣例,一個失敗一個成功。
同樣,我們也看到失敗樣例的詳細資訊,和執行過程中的中間結果。
通過上面的例項,我們發現編寫pytest測試樣例非常簡單,只需要按照下面的規則:
· 測試檔案以test_開頭(以_test結尾也可以)
· 測試類以Test開頭,並且不能帶有 __init__ 方法
· 測試函式以test_開頭
· 斷言使用基本的assert即可
可能有些同學會問為什麼要使用斷言。
不管是功能測試,自動化測試,還是單元測試。一般都會預設一個正確的預期結果,而在測試執行的過程中會得到一個實際的結果。測試的成功與否就是拿實際的結果與預期的結果進行比較。這個比的過程實際就是斷言(assert)。
那麼接下來再簡單介紹一下Allure
03
Allure介紹
Allure是一款非常輕量級並且非常靈活的開源測試報告生成框架。
Allure簡單易用,易於整合。
還支援絕大多數測試框架, 例如TestNG、Pytest、JUint等。
我們本次使用到的是基於Pytest框架整合Allure。
在pytest中使用Allure,需要使用一個Pytest的外掛pytest-allure-adaptor
pytest-allure-adaptor的安裝步驟如下:
然後從
https://bintray.com/qameta/generic/allure2下載allure,解壓到本地後,將allure執行工具的bin目錄新增到系統變數path中。
同時也應該進行jdk環境配置
(注意,jdk安裝路徑中不要包含括號、空號,否則執行allure命令時會報錯)
在測試指令碼中,怎麼新增allure特性呢?
首先需要 import allure,示例如下:
從上面簡單的例子當中,可看到,使用了Allure的幾個特性:
a、利用Feature 和 Story 組織用例,如:一個大模組M 下包含幾個小模組A、B、C ;可以將M 設定為Feature,A、B、C 設定為不同的Story ,新增Featrue和Story
b、with pytest.allure.step(‘描述’) ,在報告中增加步驟顯示
c、allure.attach 用於向測試報告中輸入一些附加的資訊,通常是一些測試資料資訊
關於Allure的更多特性,大家可在官網學習,這裡就不一一介紹了。
04
Allure測試報告的生成
怎麼通過上面的測試指令碼,生成allure所需要的測試結果檔案呢?
在cmd命令列執行測試程式碼:
py.test 測試用例目錄 –alluredir=./allure-result
生成allure所需要的測試結果檔案 。
其中 –alluredir 表示生成測試結果儲存路徑; ./allure-result 表示當前路徑下的allure-result檔案下。
然後通過命令,生成測試報告
在cmd命令執行測試程式碼:allure serve 測試用例目錄
生成的測試報告如下:
首頁
首頁中展示了本次測試的測試用例數量,成功用例、失敗用例、跳過用例的比例,ENVIRONMENT,SUITES,FEATURES BY STORIES等基本資訊。
Behaviors
點選一下FEATURES BY STORIES,將進入Behaviors頁面,這個頁面按照FEATURES和 STORIES展示測試用例的執行結果:
從這個頁面可以看到“日曆控制元件功能模組”這個FEATURES包含的七個STORIES的測試用例執行情況。
Suites
點選Suites區域下面的任何一條Suite,都將進入Suites頁面。
在Suites頁面上點選任何一條測試用例,Suites頁面的右側將展示這條用例的詳細執行情況。
從這個頁面可以看到測試用例執行的具體步驟,以及每個步驟的執行結果、測試用例失敗原因。
結語
將Allure與Pytest測試框架相結合,生成Allure格式的測試報告就介紹完了。