1. 程式人生 > >Pytest+Allure初體驗

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格式的測試報告就介紹完了。