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测试报告如下图所示:

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