生成测试报告,在Unittest框架中就是简单

测试套件(Test Suite)是测试用例、测试套件或两者的集合,用于组装一组要运行的测试(多个测试用例集合在一起)。

(1)创建一个测试套件:

import unittest
suite = unittest.TestSuite()

(2)将测试用例,加载到测试套件中。

1、通过模块或测试用例类加载

import testcases # 测试用例的模块
import unittest
suite = unittest.TestSuite() # 创建测试套件
loader = unittest.TestLoader() # 用来加载TestCase到TestSuite中的
suite.addTest(loader.loadTestsFromModule(testcases)# 模块加载
suite.addTest(loader.loadTestsFromTestCase(testcases.类名)) # 用例类加载

添加单条测试用例

suite.addTest(类名("用例方法名"))

指定测试用例的所在的目录路径

进行加载()

discover(start_dir,pattern = "test*.py”,top_level_dir = None):start_dir:待测试的模块名或测试用例目录;pattern= "test*.py”:测试用例文件名的匹配原则;top_level_dir = None:测试模块的顶层目录,默认None。


import unittest
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.discover(r"用例文件所在的目录的绝对路径"))

2、Test Runner

Test Runner:用于协调测试的执行并(通过图形界面、文本界面、返回特殊值)向用户提供结果。

(1)测试结果

.:用例通过

E:表示代码出错了

F:表示不通过

(2)使用启动器,执行测试套件。

runner = unittest.TextTestRunner() # 测试运行程序--->用来执行测试用例的
runner.run(suite)

3、生成测试报告

(1)text类型报告:

with open(“test_report.txt","w") as f:
    runner = unittest.TextTestRunner(f)
    runner.run(suite)3

(2)html类型报告:

from HTMLTestRunnerNew import HTMLTestRunner
runner = HTMLTestRunner(stream=open("test_report.html", "wb"),  # 打开一个报告文件,将句柄传给stream
                        tester="xxx",                    # 报告种显示的测试人员
                        description="测试报告描述,        # 报告种显示描述信息
                        title="测试报告标题")                 # 报告的标题
# 方法2
with open('test_report.html','wb') as file:
    runner = HTMLTestRunner(stream=file,
                            tester = 'xxxx', # 报告种显示的测试人员
                            title='测试报告标题', # 报告的标题
                            description='测试报告描述' )  # 报告种显示描述信息
    runner.run(suite)

完整代码为:


import time
import os
import unittest
from com.contants import CASE_DIR # 测试用例模块路径
from com.contants import REPORT_DIR # 测试报告路径
from com.myconf import conf # 读取配置文件(测试报告配置信息)
from library.HTMLTestRunnerNew import HTMLTestRunner # 生成测试报告
from com.sendemail import send_email
# 1.创建测试套件
suite = unittest.TestSuite()
# 2. 加载TestCase到TestSuite中
# 创建对象加载
loader = unittest.TestLoader()
# # (1)通过模块加载
# suite.addTest(loader.loadTestsFromModule(test_case))
# # (2)通过测试用例类加载
# suite.addTest(loader.loadTestsFromTestCae(test_case.类名))
#
# # (3)添加单条测试用例,不需要loader对象方法
# #  注意:通过用例类去创建测试用例对象时,需传入用例的方法名(字符串类型)
# suite.addTest(类名("用例方法名"))
# (4)指定测试用例的所在的目录路径,进行加载()
suite.addTest(loader.discover(CASE_DIR))
# 测试运行程序--->用来执行测试用例的
# 方法1
# runner = unittest.TextTestRunner()
# 方法2:将HTMLTestRunner文件放在scripts
report_name =  time.strftime('%Y-%m-%d %H_%M') + conf.get('report','reportname')
report_path = os.path.join(REPORT_DIR,report_name)
with open(report_path,'wb') as file:
    runner = HTMLTestRunner(stream=file, # 文件名
                            tester = conf.get('report','tester'), # 报告种显示的测试人员
                            title= time.strftime('%Y-%m-%d %H_%M_%S') + conf.get('report','title'), # 报告的标题
                            description=conf.get('report','description') )  # 报告种显示描述信息
    runner.run(suite)
# 发送测试报告
send_email(report_path,report_name)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


      【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图+全套资料】


一、Python编程入门到精通


二、接口自动化项目实战  

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!   

你可能感兴趣的:(软件测试,自动化测试,软件测试工程师,服务器,运维,软件测试,程序人生,自动化测试,功能测试,职场发展)