您當前的位置:首頁 > 遊戲

pytest 使用 allure 生成報告的一點小注意

作者:由 乖是河豚 發表于 遊戲時間:2021-01-13

自專案成熟後,一直都是使用 BeautifulSoap 和 Allure 交替檢視測試報告。每天檢視那麼多次,但對他們卻是一知半解。

11號閒來無事,找了一些小練習研究 Allure 的使用,在使用 Pytest 命令輸出報告時,一直不得解,每個引數表示什麼意思、allure 的資料如何生成、報告路徑又是 怎樣定義的。

在輸出報告時,有兩種方式:

第一種方式

$

pytest

test_baidudemo

py

-

s

-

q

——

alluredir

=。/

result

/

# 該命令表示執行 test_baidudemo。py 檔案,-q:靜默輸出方式,,即簡要輸出資訊;-s:顯示除錯或列印的內容; 最後將allure結果資料儲存到指定目錄

$

allure

serve

。/

result

Generating

report

to

temp

directory

。。。

Report

successfully

generated

to

C

\

***

\

***

\

AppData

\

Local

\

Temp

\

5370638618015012312

\

allure

-

report

Starting

web

server

。。。

2021

-

01

-

12

23

43

54。179

INFO

::

main

Logging

initialized

@

4264

ms

to

org

eclipse

jetty

util

log

StdErrLog

Server

started

at

<

http

//

172。

*。*。*

6313

/>。

Press

<

Ctrl

+

C

>

to

exit

# 開啟allure報告時,需要開啟allure服務,serve 生成線上報告,儲存在預設的臨時路徑下。自動呼叫預設瀏覽器顯示報告

# 有可能會呼叫IE瀏覽器,無法顯示,將地址複製後在谷歌中開啟即可

pytest 使用 allure 生成報告的一點小注意

第二種方式

$

pytest

test_baidudemo

py

-

s

-

q

——

alluredir

=。/

result

/

# 生成結果資料,json 格式,儲存到 result/ 檔案中

$

allure

generate

——

clean

。/

result

/

“”“

將結果資料生成 html 報告,allure 會在當前目錄檢查是否有 allure-report 檔案,

沒有的話會自動生成 allure-report 檔案,並將報告內容儲存在這個資料夾下面。——clean 引數,清除歷史資料

前面的 generate 。/result/ ,generate 後面一定要跟儲存結果資料的路徑,allure 才能取到資料,正確的生成報告,否則報告中資料顯示 NaN%

或者使用命令 allure generate 。/result/ -o 。/report/ ——clean

-o 引數是將報告內容儲存到指定的資料夾下,此時 allure 不再儲存到預設的目錄下面

注意: 若是使用了引數化方式,生成 allure 報告時,不能用管道符將前後的命令連線起來使用,容易發生錯誤。

$ pytest test_baidudemo。py -s -q ——alluredir=。/result/ | allure generate 。/result/ -o 。/reports/ ——clean

# 此方式容易報錯,比如,第一個用例執行完,命令就進入生成報告環節,但第二個用例尚未開始,此時系統會報錯,導致執行失敗。

部分錯誤資訊如下

OSError: [Errno 22] Invalid argument

Exception ignored in: <_io。TextIOWrapper name=‘’ mode=‘w’ encoding=‘cp936’>

OSError: [Errno 22] Invalid argument

”“”

所以比較好的執行方式是將命令拆開執行

$

pytest

test_baidudemo

py

-

s

-

q

——

alluredir

=。/

result

/

$

allure

generate

。/

result

/

-

o

。/

reports

/

——

clean

標簽: Allure  Result  報告  baidudemo  py