自動化測試執行完成之后,我們需要生成測試報告來查看測試結果,使用HTMLTestRunner模塊可以直接生產Html格式的報告。
下載地址:
http://tungwaiyip.info/software/HTMLTestRunner.html
下載后的修改:
- 94行引入的名稱要改,從 import StringIO 改成import io
- 539行 self.outputBuffer = StringIO.StringIO() 要改成self.outputBuffer=io.StringIO()
- 631行 print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改為:print (sys.stderr, '\nTime Elapsed: %s' %(self.stopTime-self.startTime))
- 642行,if not rmap.has_key(cls): 需要換成 if not cls in rmap:
- 766行的uo = o.decode('latin-1'),改成 uo=o
- 772行,把 ue = e.decode('latin-1') 直接改成 ue = e
注意:該修改針對的是使用Python3的朋友,如果你安裝的是Python2,那么就不需要進行修改,直接使用即可。
存放路徑:
將修改完成的模塊存放在Python路徑下Lib目錄里面即可
案例:
在前一篇文章的runtest.py的基礎上進行修改,從而得到關於百度搜索的測試報告
import unittest from HTMLTestRunner import HTMLTestRunner import time test_dir = './test_case' discovery = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py') if __name__ == '__main__': # 存放報告的文件夾
report_dir = './test_report'
# 報告命名時間格式化
now = time.strftime("%Y-%m-%d %H_%M_%S") # 報告文件完整路徑
report_name = report_dir+'./'+now+"result.html"
# 打開文件再報告文件寫入測試結果
with open(report_name, "wb") as f: runner = HTMLTestRunner(stream=f, title='百度搜索測試報告', description='用例執行結果:') # 運行測試用例
runner.run(discovery) # 關閉報告文件
f.close()
代碼分析:
首先,將HTMLTestRunner模塊用import導入進來
其次,通過open()方法以二進制寫模式打開當前目錄下的以'當前時間+result.html'(將報告名稱以當前時間命名,可以便於我們查看),如果沒有,則自動創建該文件
接着,調用HTMLTestRunner模塊下的HTMLTestRunner類。stream指定測試報告文件,title用於定義測試報告的標題,description用於定義測試報告的副標題。
最后,通過HTMLTestRunner的run()方法來運行測試套件中所組裝的測試用例。最后通過close()關閉測試報告文件。
測試報告:

美化測試報告
下載地址:
https://github.com/easonhan007/HTMLTestRunner
修改方式,存儲路徑參照上面
代碼實現:
和上面一樣,除了把HTMLTestRunner換成BSTestRunner
