Pytest + Allure 實現(xiàn)高大上的測試報告

Pytest 是 Python 第三方的測試庫。提供了比 unittest 更強大更靈活的測試機制猜揪。同時有眾多的插件可以實現(xiàn)更多測試場景。

對于 Pytest 的使用不展開來談,以后會寫關于 Pytest 庫的使用教程坝冕。這里主要展示通過 pytest 和 allure 結合實現(xiàn)漂亮的測試報告。

一份酷炫的報告瓦呼,有助于提升自動化測試逼格喂窟。

先來看看效果:


allure 報告

但是這玩意用起來比較麻煩,在使用過程中有很多的坑央串。

首先如果你沒有安裝 pytest 庫的話磨澡,先使用 pip 安裝一下:

pip install pytest

另外還需要安裝 pytest 支持 allure 報告的插件庫:

pip install allure-pytest

接下來在運行測試時,使用 pytest 命令運行:

pytest <測試目錄> --alluredir <測試結果存放目錄>

比如质和,我的文件夾目錄如下


文件目錄

那么這個命令就應該寫為:

pytest tests --alluredir report/allure_raw
  • tests 為測試用例存放目錄稳摄,告訴 pytest 應該去哪里找用例;
  • report 是存放測試報告的饲宿,allure 收集 pytest 運行后產出的結果放在 allure_raw 文件夾中厦酬。

注意:這里的 allure_raw 文件夾只存放的是測試運行結果,還不是報告瘫想!報告還需要調用 allure 命令去生成仗阅。

結果是像這樣的:


allure測試結果

還是一堆 txt 和 json 文件。

我們要生成漂亮的報告還需要一步国夜,從 allure 官網上下載最新的 allure 减噪。下載后是一個 zip 文件,把該文件解壓后放到我們目錄中的 lib 文件夾中车吹。

可以把解壓后的 bin 目錄添加到環(huán)境變量的 PATH 中筹裕,可以直接使用 allure 命令

allure

allure 是由 allure 官方提供的命令行工具,用來將測試結果生成測試報告礼搁,啟動一個服務查看報告等等饶碘。是一個必須的命令行工具。

在生成報告前馒吴,你可以使用命令先預覽報告的內容:

allure serve report/allure_raw

接下來我們就繼續(xù)使用 allure 密令來生成測試報告扎运。

命令如下:

lib\allure-2.12.1\bin> allure generate <allure測試結果目錄> -o <存放報告的目錄> --clean
  • allure測試結果目錄,是上面運行 pytest 命令后存放結果的地方饮戳,我們這里的目錄是 report 下的 allure_raw 文件夾豪治;
  • 存放報告的目錄,是最終生成的測試報告存放的目錄扯罐,我打算把生成出的報告放在 report 下的 allure_report文件夾中负拟;
  • --clean參數(shù)用來清空已有的報告,避免覆蓋時出錯歹河。

以我們的例子來生成報告的命令如下:

lib\allure-2.12.1\bin> allure generate report/allure_raw -o report/allure_report --clean

通過上面的命令運行后掩浙,就會從 allure_raw 目錄中將 pytest 運行的結果生成一個漂亮的報告花吟,存放在 allure_report 中。

allure 報告

然后在 pycharm 中可以通過右鍵選擇index.html就可以看到報告了厨姚。

右鍵瀏覽器打開

如果你不是用 Pycharm 的話衅澈,可以通過 allure 命令生成服務,然后查看谬墙。

>allure  open /report/allure_report

運行后會啟動一個 web 服務今布,用于展示報告:


啟動一個服務來展示報告

實際跑自動化用例的時候呢,可以和 Jenkins 結合后在 Jenkins 中查看報告拭抬。

當然上面的命令很雜部默,我封裝了一個函數(shù),把 pytest 常用的幾個插件的用法都加進去了造虎。

  • pytest-xdist 多并發(fā)運行傅蹂,保證測試用例的運行效率。 參數(shù)為 -n 并發(fā)數(shù)累奈,如果并發(fā)數(shù)為 auto贬派,表示自動根據當前機器的 CPU 內核數(shù)量確定并發(fā)數(shù);
  • pytest-rerunfailures 測試用例出錯后澎媒,自動重試。在實際測試過程中波桩,很多時候用例失敗可能是因為網絡問題戒努,臨時的環(huán)境問題,而并非真正的 Bug镐躲。為了減少(注意是減少不是避免)這種烏龍情況的發(fā)生储玫,可以多運行幾次用例。參數(shù)為--reruns 重試次數(shù)萤皂。

需要安裝上述兩個庫

pip install pytest-xdist
pip install pytest-rerunfailures

點擊這里下載示例代碼

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末撒穷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子裆熙,更是在濱河造成了極大的恐慌端礼,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件入录,死亡現(xiàn)場離奇詭異蛤奥,居然都是意外死亡,警方通過查閱死者的電腦和手機僚稿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門凡桥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蚀同,你說我怎么就攤上這事缅刽“√停” “怎么了?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵衰猛,是天一觀的道長迟蜜。 經常有香客問我,道長腕侄,這世上最難降的妖魔是什么小泉? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮冕杠,結果婚禮上微姊,老公的妹妹穿的比我還像新娘。我一直安慰自己分预,他們只是感情好兢交,可當我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笼痹,像睡著了一般配喳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凳干,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天晴裹,我揣著相機與錄音,去河邊找鬼救赐。 笑死涧团,一個胖子當著我的面吹牛,可吹牛的內容都是我干的经磅。 我是一名探鬼主播泌绣,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼预厌!你這毒婦竟也來了阿迈?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤轧叽,失蹤者是張志新(化名)和其女友劉穎苗沧,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體犹芹,經...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡崎页,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了腰埂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片飒焦。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出牺荠,到底是詐尸還是另有隱情翁巍,我是刑警寧澤,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布休雌,位于F島的核電站灶壶,受9級特大地震影響,放射性物質發(fā)生泄漏杈曲。R本人自食惡果不足惜驰凛,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望担扑。 院中可真熱鬧恰响,春花似錦、人聲如沸涌献。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽燕垃。三九已至枢劝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卜壕,已是汗流浹背您旁。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留轴捎,地道東北人被冒。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像轮蜕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蝗锥,可洞房花燭夜當晚...
    茶點故事閱讀 43,595評論 2 350