前言
批量執行完用例後,生成的測試報告是文本形式的,不夠直觀,為了更好的展示測試報告,可以生成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.重新運行後查看測試報告
五、參考代碼:
# coding:utf-8
import unittest
import HTMLTestRunner
def all_case():
# 待執行用例的目錄
case_dir = "D:\\test\\yoyotest\\case"
testcase = unittest.TestSuite()
discover = unittest.defaultTestLoader.discover(case_dir,
pattern="test*.py",
top_level_dir=None)
# discover方法篩選出來的用例,循環添加到測試套件中
for test_suite in discover:
for test_case in test_suite:
# 添加用例到testcase
testcase.addTests(test_case)
print testcase
return testcase
if __name__ == "__main__":
# 返回實例
# runner = unittest.TextTestRunner()
report_path = "D:\\test\\yoyotest\\report\\result.html"
fp = open(report_path, "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u'這是我的自動化測試報告',
description=u'用例執行情況:')
# run所有用例 交流QQ群:232607095
runner.run(all_case())
fp.close()
學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:232607095