听了学长一席话:原来在Unittest框架中,生成测试报告这么简单

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

(1)创建一个测试套件

import unittestsuite = unittest.TestSuite()

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

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

import testcases # 测试用例的模块import unittestsuite = 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 unittestsuite = 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)

(2)html类型报告

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

完整代码为:

import timeimport osimport unittestfrom 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文件放在scriptsreport_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)

最后,下面是我整理出来的一份软件测试工程师发展方向知识架构体系图。

希望大家能在这个成长过程中收益良多。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

由于CSDN上传图片大小有限,有需要的朋友可以关注我的公众号:程序员二黑,回复1,即可获取原图。

下面是一份配套的软件测试资源包:

上面是一些配套资源,对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

关注我的微信公众号:程序员二黑,即可免费获取!

最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。

 

Supongo que te gusta

Origin blog.csdn.net/weixin_56331124/article/details/119493480
Recomendado
Clasificación