python自動化生成HTMLTestRunner測試報告

在腳本運行完成之後,除了在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測試報告如下圖所示:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章