python接口自動(dòng)化(二十七)--html 測(cè)試報(bào)告——上(詳解)

簡(jiǎn)介

  上一篇我們批量執(zhí)行完用例后健田,生成的測(cè)試報(bào)告是文本形式的信轿,不夠直觀,而且報(bào)告一般都是發(fā)給leader的曹铃,所以最好是直觀一目了然缰趋,為了更好的展示測(cè)試報(bào)告,最好是生成 HTML 格式的陕见。unittest 里面是不能生成 html 格式報(bào)告的秘血,需

要導(dǎo)入一個(gè)第三方的模塊:HTMLTestRunner。

導(dǎo)入 HTMLTestRunner

1.评甜、這 個(gè) 模 塊 下 載 不 能 通 過 pip 安裝了灰粮,只能下載后手動(dòng)導(dǎo)入,下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html

2蜕着、Download 下 HTMLTestRunner.py 文件就是我們需要下載的包谋竖。注意點(diǎn)擊后會(huì)進(jìn)入其源碼,可以通過另存為將其下載下來或者直接Ctrl+A加Ctrl+C承匣,Ctrl+V,推薦另存為

3蓖乘、下載后手動(dòng)拖到 python 安裝文件的 Lib 目錄下

demo 解析

1、下載 Download 下的第二個(gè)文件 test_HTMLTestRunner.py,這個(gè)就是官方給的一個(gè)測(cè)試demo 了韧骗,從這個(gè)文件可以找到該模塊的用法嘉抒。

2、找到下圖這段袍暴,就是官方給的一個(gè) demo 了些侍,test_main()里上半部分就是加載測(cè)試 case,我們不需要搞這么復(fù)雜。

3政模、最核心的代碼是下面的紅色區(qū)域岗宣,這個(gè)就是本篇的重點(diǎn)啦。

生成 html 報(bào)告

1淋样、我們只需把上面紅色區(qū)域代碼 copy 到上一篇的基礎(chǔ)上稍做修改就可以了耗式,這里主要有三個(gè)參數(shù):

  --stream:測(cè)試報(bào)告寫入文件的存儲(chǔ)區(qū)域

  --title:測(cè)試報(bào)告的主題

  --description:測(cè)試報(bào)告的描述

2、report_path 是存放測(cè)試報(bào)告的地址

測(cè)試報(bào)告詳情

1、找到測(cè)試報(bào)告文件刊咳,用瀏覽器打開彪见,點(diǎn)開 View 里的 Detail 可以查看詳情描述。

2娱挨、為了生成帶中文描述的測(cè)試用例余指,可以在 case 中添加注釋,如在 test_01 的腳本添加如下注釋:

3跷坝、重新運(yùn)行后查看測(cè)試報(bào)告

參考代碼

1# coding=utf-8 2#1.先設(shè)置編碼酵镜,utf-8可支持中英文,如上柴钻,一般放在第一行 3 4#2.注釋:包括記錄創(chuàng)建時(shí)間笋婿,創(chuàng)建人,項(xiàng)目名稱顿颅。 5''' 6Created on2019-4-29 7@author: 北京-宏哥 8Project:學(xué)習(xí)和使用discover批量執(zhí)行測(cè)試用例 9'''10#3.導(dǎo)入unittest模塊11import unittest12import os13#4.編寫測(cè)試用例和斷言14def all_case():15? ? # 待執(zhí)行用例的目錄16#case_dir ="C:\\Users\\DELL\\PycharmProjects\\honggetest\\case"17case_dir = os.path.join(os.getcwd(),"case")18testcase = unittest.TestSuite()19discover = unittest.defaultTestLoader.discover(case_dir,20pattern="test*.py",21top_level_dir=None)22? ? # #discover方法篩選出用例,循環(huán)添加到測(cè)試套件中23#fortest_suitin discover:24#fortest_casein test_suit:25? ? #? ? ? ?? #添加用力到testcase26? ? #? ? ? ?? testcase.addTests(test_case)27? ? # print(testcase)2829? ? testcase.addTests(discover)? # 直接加載 discover? ? 可以兼容python2和330? ? print(testcase)31return testcase32if__name__ =="__main__":33? ? # 返回實(shí)例34runner = unittest.TextTestRunner()35? ? #導(dǎo)入第三方模塊HTMLTestRunner36? ? import HTMLTestRunner37? ? #保存生成報(bào)告的路徑38report_path ="C:\\Users\\DELL\\PycharmProjects\\honggetest\\report\\result.html"39fp = open(report_path,'wb')40runner = HTMLTestRunner.HTMLTestRunner(stream=fp,41title=u"這是我的自動(dòng)化測(cè)試用例",42description=u"用例執(zhí)行情況"43? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? )44? ? # run 所有用例45? ? runner.run(all_case())46? ? #關(guān)閉文件足丢,記住用open()打開文件后一定要記得關(guān)閉它粱腻,否則會(huì)占用系統(tǒng)的可打開文件句柄數(shù)。47fp.close()

小結(jié)

1斩跌、fp.close()? #關(guān)閉文件绍些。python會(huì)在一個(gè)文件不用后自動(dòng)關(guān)閉文件,不過這一功能沒有保證耀鸦,最好還是養(yǎng)成自己關(guān)閉的習(xí)慣柬批。? 如果一個(gè)文件在關(guān)閉后還對(duì)其進(jìn)行操作會(huì)產(chǎn)生ValueError

2、問題: 執(zhí)行測(cè)試用例的過程中袖订,不會(huì)打印任何東西氮帐,導(dǎo)致上個(gè)廁所或第二天回來時(shí),根本不知道執(zhí)行到哪了洛姑,或者執(zhí)行多少測(cè)試用例了上沐。

解決思路: 每次執(zhí)行一個(gè)測(cè)試用例時(shí),就打印該測(cè)試用例的名稱楞艾。

解決方案: 調(diào)用HTMLTestRunner時(shí)参咙,定義 verbosity 為大于1的整數(shù),比如說 2:

runner=HTMLTestRunner.HTMLTestRunner(fp,title="xxxx",description="xxx",verbosity=2)

在控制臺(tái)console 就可以看到每執(zhí)行一條用例硫眯,就會(huì)有如下輸出:

3蕴侧、HTMLTestRunner 腳本源碼分析與解釋

1classOutputRedirector(object) 2# 將輸出進(jìn)行重定向 3 4classTemplate_mixin(object) 5# 定義生成HTML結(jié)果文件所需要的模板。 6# 如果我們想改變HTML的格式等待两入,可以在這里進(jìn)行改動(dòng) 7 8class _TestResult(TestResult) 9# 定義繼承自 unittest.TestResult 的 類净宵。10# 這里重寫了 unittest.TestResult 的多個(gè)方法,比如 startTest(self, test) 等等1112class HTMLTestRunner(Template_mixin)13# 這里可以說是使用 HTMLTestRunner.py 的入口。定義了多個(gè)我們可以看到的方法塘娶,比如 run(self, test)1415class TestProgram(unittest.TestProgram)16# 這里繼承自 unittest.TestProgram 類归斤,重寫了 runTests 方法。17# 用于命令行執(zhí)行測(cè)試

4刁岸、缺點(diǎn):使用HTMLTestRunner的執(zhí)行測(cè)試用例的過程中脏里,如果中間中斷執(zhí)行,則已經(jīng)執(zhí)行完的用例結(jié)果也不會(huì)打印到html文件

????為了方便大家在移動(dòng)端也能看到我分享的博文虹曙,現(xiàn)已注冊(cè)個(gè)人微信公眾號(hào)迫横,掃描左下方二維碼即可,歡迎大家關(guān)注酝碳,有時(shí)間會(huì)及時(shí)分享相關(guān)技術(shù)博文矾踱。

為了方便大家互動(dòng)討論相關(guān)技術(shù)問題,現(xiàn)已組建專門的微信群疏哗,由于微信群滿100呛讲,請(qǐng)您掃描右下方宏哥個(gè)人微信二維碼拉你進(jìn)群(請(qǐng)務(wù)必備注:已關(guān)注公眾號(hào)進(jìn)群),歡迎大家加入這個(gè)大家庭返奉,我們一起暢游知識(shí)的海洋贝搁。

感謝您花時(shí)間閱讀此篇文章,如果您覺得這篇文章你學(xué)到了東西也是為了犒勞下博主的碼字不易不妨打賞一下吧,讓博主能喝上一杯咖啡芽偏,在此謝過了雷逆!

如果您覺得閱讀本文對(duì)您有幫助,請(qǐng)點(diǎn)一下左下角“推薦”按鈕污尉,您的“推薦”將是我最大的寫作動(dòng)力膀哲!另外您也可以選擇關(guān)注我,可以很方便找到我被碗!

本文版權(quán)歸作者和博客園共有某宪,來源網(wǎng)址:https://www.cnblogs.com/du-hong歡迎各位轉(zhuǎn)載,但是未經(jīng)作者本人同意蛮放,轉(zhuǎn)載文章之后必須在文章頁面明顯位置給出作者和原文連接缩抡,否則保留追究法律責(zé)任的權(quán)利!

作者:北京_宏哥

鏈接:http://www.reibang.com/p/6891e9b5bf91

來源:簡(jiǎn)書

著作權(quán)歸作者所有包颁。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)瞻想,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娩嚼,一起剝皮案震驚了整個(gè)濱河市蘑险,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌岳悟,老刑警劉巖佃迄,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泼差,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡呵俏,警方通過查閱死者的電腦和手機(jī)堆缘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來普碎,“玉大人吼肥,你說我怎么就攤上這事÷槌担” “怎么了缀皱?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)动猬。 經(jīng)常有香客問我啤斗,道長(zhǎng),這世上最難降的妖魔是什么赁咙? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任钮莲,我火速辦了婚禮,結(jié)果婚禮上彼水,老公的妹妹穿的比我還像新娘臂痕。我一直安慰自己,他們只是感情好猿涨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著姆怪,像睡著了一般叛赚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稽揭,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天俺附,我揣著相機(jī)與錄音,去河邊找鬼溪掀。 笑死事镣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的揪胃。 我是一名探鬼主播璃哟,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼喊递!你這毒婦竟也來了随闪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤骚勘,失蹤者是張志新(化名)和其女友劉穎铐伴,沒想到半個(gè)月后撮奏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡当宴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年畜吊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片户矢。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玲献,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逗嫡,到底是詐尸還是另有隱情青自,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布驱证,位于F島的核電站延窜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏抹锄。R本人自食惡果不足惜逆瑞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伙单。 院中可真熱鬧获高,春花似錦、人聲如沸吻育。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽布疼。三九已至摊趾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間游两,已是汗流浹背砾层。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贱案,地道東北人肛炮。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像宝踪,于是被迫代替她去往敵國和親侨糟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355