前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测试报告-HTMLTestRunner报告优化(截图)

测试报告-HTMLTestRunner报告优化(截图)

作者头像
wangmcn
发布2022-07-25 13:47:32
1K0
发布2022-07-25 13:47:32
举报
文章被收录于专栏:AllTests软件测试

HTMLTestRunner报告优化(截图)

在执行测试用例的时候,希望把报错截图也要放进报告里,使用在原始的HTMLTestRunner.py文件基础上优化后的HTMLTestRunnerPlugins.py文件。

1、首先新建一个Python项目

例如:My_Report_HTMLTestRunner2_Demo。

创建case包,用于存放测试用例(test_case1.py、test_case2.py)。

创建plugins包,用于存放生成测试报告扩展文件(HTMLTestRunnerPlugins.py)。

创建report文件夹,执行脚本指定测试报告生成在此文件夹里。

创建run_all.py为执行测试用例文件。

2.1、test_case1.py(测试用例)

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
测试用例1
"""
from selenium import webdriver
import unittest

class Test1(unittest.TestCase):
    '''测试用例1测试'''
    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_01(self):
        '''失败用例'''
        self.driver.get('https://www.baidu.com')
        self.driver.find_element_by_id('kw1').send_keys('百度一下')
        self.assertTrue(True)

    def test_02(self):
        '''失败用例'''
        self.driver.get('https://mail.126.com/')
        self.assertIn('163',self.driver.title)

    def test_03(self):
        '''成功用例'''
        self.driver.get('https://cn.bing.com/')
        self.assertIn('Bing',self.driver.title)

if __name__ == '__main__':
    unittest.main(verbosity=2)

2.2、test_case2.py(测试用例)

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
测试用例2
"""
from selenium import webdriver
import unittest

class Test2(unittest.TestCase):
    '''测试用例2测试'''
    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_01(self):
        '''成功用例'''
        self.driver.get('https://www.baidu.com')
        self.driver.find_element_by_id('kw').send_keys('百度一下')

    def test_02(self):
        '''成功用例'''
        self.driver.get('https://cn.bing.com/')

if __name__ == '__main__':
    unittest.main(verbosity=2)

2.3、run_all.py(执行用例)

引入HTMLTestRunnerPlugins,设置报告名称、描述、报告路径、输出报告详细程度、失败重试次数等。

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
执行用例
"""
import unittest, time
import os
from plugins import HTMLTestRunnerPlugins

# 或者将HTMLTestRunnerPlugins文件拷贝到Python安装目录里的Lib文件夹下
# import HTMLTestRunnerPlugins

# 获取路径
cur_path = os.path.dirname(os.path.realpath(__file__))
# 测试用例路径
case_path = os.path.join(cur_path, 'case')
# 测试报告路径
report_path = os.path.join(cur_path, 'report')

if __name__ == "__main__":
    # 构造测试集
    suite = unittest.defaultTestLoader.discover(case_path,'test*.py')
    # 获取当前时间
    now = time.strftime('%Y-%m-%d %H_%M_%S')
    # 定义测试报告
    runner = HTMLTestRunnerPlugins.HTMLTestRunner(title='自动化测试报告',
                                                  description='用例执行情况:',
                                                  stream=open(report_path + '\\' + now + ' HTMLReport.html', 'wb'),
                                                  verbosity=2,
                                                  retry=0 # 指定重试次数,重试的测试也会收集到测试报告中
                                                 )
    # 运行测试用例
    runner.run(suite)

3、执行run_all.py文件

运行结果:

在项目的report目录里自动生成测试报告。

双击打开测试报告,效果如下:

优化了:错误和失败截图、饼图统计、失败后重试功能等。

点击显示截图。

将run_all.py文件里的定义测试报告参数retry=0修改为retry=1(指定重试次数,重试的测试也会收集到测试报告中,这里设置为1,如执行失败后再次执行1次),再次执行此文件,运行结果:

双击打开测试报告,效果如下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档