Selenium2+python自動化54-unittest生成測試報告(HTMLTestRunner)


前言

批量執行完用例后,生成的測試報告是文本形式的,不夠直觀,為了更好的展示測試報告,最好是生成HTML格式的。

unittest里面是不能生成html格式報告的,需要導入一個第三方的模塊:HTMLTestRunner

 

一、導入HTMLTestRunner

1.這個模塊下載不能通過pip安裝了,只能下載后手動導入,下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html

2.Download下HTMLTestRunner.py文件就是我們需要下載的包。

3.下載后手動拖到python安裝文件的Lib目錄下

 

二、demo解析

1.下載Download下的第二個文件test_HTMLTestRunner.py,這個就是官方給的一個測試demo了,從這個文件可以找到該模塊的用法。

2.找到下圖這段,就是官方給的一個demo了,test_main()里上半部分就是加載測試case,我們不需要搞這么復雜。

參考前面一篇內容就行了Selenium2+python自動化53-unittest批量執行(discover)

3.最核心的代碼是下面的紅色區域,這個就是本篇的重點啦。

 

三、生成html報告

1.我們只需把上面紅色區域代碼copy到上一篇的基礎上稍做修改就可以了,這里主要有三個參數:

--stream:測試報告寫入文件的存儲區域

--title:測試報告的主題

--description:測試報告的描述

2.report_path是存放測試報告的地址

 

四、測試報告詳情

1.找到測試報告文件,用瀏覽器打開,點開View里的Detail可以查看詳情描述。

2.為了生成帶中文描述的測試用例,可以在case中添加注釋,如在test_01的腳本添加如下注釋:

class Test(unittest.TestCase):
    def setUp(self):
        print "start!"

    def tearDown(self):
        time.sleep(1)
        print "end!"

    def test01(self):
        u'''測試登錄用例,賬號:xx 密碼xx'''
        print "執行測試用例01"

    def test03(self):
        u'''測試登搜索用例,關鍵詞:xxx'''
        print "執行測試用例03"

3.重新運行后查看測試報告

 

五、參考代碼:

1.我下面的代碼文件路徑用的相對路徑,這樣就避免代碼換個地址找不到路徑的情況了

# coding:utf-8
import unittest
import os
import HTMLTestRunner

# python2.7要是報編碼問題,就加這三行,python3不用加

import sys
reload(sys)
sys.setdefaultencoding('utf8')

# 用例路徑
case_path = os.path.join(os.getcwd(), "case")
# 報告存放路徑
report_path = os.path.join(os.getcwd(), "report")
def all_case():
    discover = unittest.defaultTestLoader.discover(case_path,
                                                    pattern="test*.py",
                                                    top_level_dir=None)
    print(discover)
    return discover

if __name__ == "__main__":
    # runner = unittest.TextTestRunner()
    # runner.run(all_case())

    # html報告文件路徑
    report_abspath = os.path.join(report_path, "result.html")
    fp = open(report_abspath, "wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                           title=u'自動化測試報告,測試結果如下:',
                                           description=u'用例執行情況:')

    # 調用add_case函數返回值
    runner.run(all_case())
    fp.close()

 

學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429

覺得對你有幫助,就在右下角點個贊吧,感謝支持!

selenium+python高級教程》已出書:selenium webdriver基於Python源碼案例

(購買此書送對應PDF版本)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM