HTML測試報告html
顯然,一份漂亮的測試報告展現自動化測試成果只有一個簡單的log文件是不夠的。
HTMLTestRunner是python標準庫unittest單元測試框架的一個擴展,它生成易於使用的HTML測試報告。
下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下載HTMLTestRunner.py文件,選中後右鍵另存爲,保存到本地,而後將其放在python安裝目錄下的Lib目錄下。即:Windows保存到…\pytohn27\Lib目錄下。python
在python交互模式下引入HTMLTestRunner模塊,若是系統沒有報錯,則說明添加成功,以下圖所示web
2.修改HTMLTestRunner
由於HTMLTestRunner.py是基於python2開發的,爲了使其支持python3的環境,須要對其中的部份內容進行修改,以下圖所示。
#第94行框架
#第540行python2.7
#第633行單元測試
#第646行測試
#第771行ui
#第778行url
3.生成HTML測試報告
下面繼續以test_baidu.py文件爲例生成HTMLTestRunner測試報告。(注意:因爲當前本人使用的是python2.7,因此不能修改HTMLTestRunner.py文件)spa
#test_baidu.py
#coding:utf-8
from selenium import webdriver
from HTMLTestRunner import HTMLTestRunner
import unittest
import time
class MyTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(10)
self.base_url="http://www.baidu.com"
def test_baidu(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("unittest")
driver.find_element_by_id("su").click()
time.sleep(2)
title=driver.title
self.assertEqual(title,u"unittest_百度搜索")
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
testunit=unittest.TestSuite()
testunit.addTest(MyTest("test_baidu"))
#定義報告存放路徑
fp=open('./result.html','wb')
#定義測試報告
runner=HTMLTestRunner(stream=fp,title=u'百度搜索測試報告',description=u'用例執行狀況:')
runner.run(testunit)#運行測試用例
fp.close()#關閉報告文件
代碼分析:
1.首先,將HTMLTestRunner模塊用import導入進來。
2.經過open()方法一二進制寫模式打開當前目錄下的result.html,若是沒有,則自動建立該文件。
3.調用HTMLTestRunner模塊下的HTMLTestRunner類,stream指定測試報告文件,title用於定義測試報告的標題,description用於定義測試報告的副標題。
4.最後,經過HTMLTestRunner的run()方法來運行測試套件中的測試用例,最後,經過close()關閉測試報告文件。
5.用例執行完成後,打開「result.html」文件查看生成的測試報告,以下圖所示: