在腳本運行完成之後,除了在log.txt文件看到運行日誌外,我們更希望能生成一張漂亮的測試報告來展示用例執行的結果。
HTMLTestRunner是python標準庫的unittest模塊的擴展
首先要下載HTMLTestRunner.py文件
下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html
Windows:下載文件直接放在python\lib目錄下
liunx(ubuntu):打開終端,輸入python命令進入python交互模式,通過sys.path查看python文件目錄,以管理員的身份將HTMLTestRunner.py文件拷貝到/usr/lib/python2.7/dist-packages/
start_baidu.py
from selenium import webdriver import time,unittest from myTestCase.login import login class BaiDu(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.path='http://www.baidu.com' self.driver.get(self.path) self.driver.implicitly_wait(30) self.verificationErrors = [] self.accept_next_alert = True def test_b(self): login(self) print('登陸成功') text = self.driver.find_element_by_xpath('//*[@id="s_username_top"]/span').text self.assertEqual('魅影24K純帥', text, '登錄失敗') def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors) # if __name__=='__main__': # unittest.main()
start_youdao.py
from selenium import webdriver import time,unittest class YouDao(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.path='http://fanyi.youdao.com/' self.driver.get(self.path) self.driver.implicitly_wait(30) self.verificationErrors = [] self.accept_next_alert = True def test_y(self): self.driver.find_element_by_xpath('/html/body/div[1]/div/ul/li[2]/a').click() time.sleep(2) title=self.driver.title self.assertEqual('在線翻譯_有道',title,'跳轉失敗') def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors) # if __name__=='__main__': # unittest.main()
alltest.py
import time,unittest,HTMLTestRunner #用例目錄 listdir = 'C:\\Users\\apple\\PycharmProjects\\pycase\\myTestCase\\' def mysuite(): suite=unittest.TestSuite()#初始化套件測試對象 #獲取py文件 #top_level_dir=None:測試模塊的頂層目錄。如果沒頂層目錄(也就是說測試用例不是放在多級目錄 # 中),默認爲 None。 discover = unittest.defaultTestLoader.discover( listdir,pattern='start*.py',top_level_dir=None ) for test_suite in discover:#循環獲取start開頭的py文件 for test_case in test_suite:#獲取每個文件中的測試用例 suite.addTest(test_case) return suite s = mysuite() now = time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime()) # print(now) filename = 'C:\\Users\\apple\\PycharmProjects\\pycase\\myTestCase\\'+now+'target.html' fp = open(filename, 'wb') #定義測試報告 runner = HTMLTestRunner.HTMLTestRunner( stream=fp, title=u'百度搜索測試報告', description=u'用例執行情況:') #運行測試用例 runner.run(s)
生成的HTML測試報告如下圖所示: