Unittest自动化测试之unittestunittest_生成测试报告

unittest_生成测试报告

测试报告为测试结果的统计即展示,是自动化测试不可或缺的一部分,利用unittest 可以生成测试报告

方式一、使用第三方 HTMLTestRunner 执行测试用例集,生成网页版测试报告(推荐)

HTMLTestRunner是Python标准库的unittest模块的一个扩展,在使用该模块之前 要下载HTMLTestRunner.py文件,并将该文件保存在python安装路径下的lib文件夹或者 是项目的子包中,在python代码中通过 import HTMLTestRunner导入,即可使用。

HTMLTestRunner常用参数介绍:
stream: 配置测试报告要保存的文件路径
title:测试报告标题
description: 测试报告的描述信

代码示例:

 
  1. # 使用discover()来实现添加执行整个目录下所有的测试用例

  2. import os

  3. import unittest

  4. import HTMLTestRunner

  5. import time

  6. # 获取当前路径

  7. curren_path = os.path.dirname(__file__)

  8. # 获取测试用例目录的路径

  9. case_path = os.path.join(curren_path,"all_case")

  10. # 从当前路径回到上一层路径

  11. # case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))

  12. # 匹配测试用例路径下的所有的测试方法

  13. discover = unittest.defaultTestLoader.discover(start_dir=case_path, # 用例路径

  14. pattern="*_case*.py",

  15. top_level_dir=None) # 文件类型

  16. # 创建主套件

  17. main_suite = unittest.TestSuite()

  18. # 把测试用例路径添加到主套件中

  19. main_suite.addTest(discover)

  20. # 执行主套件里的测试用例;如果要生成测试报告,则不通过unittest.main()方法执行

  21. # unittest.main(defaultTest="main_suite",verbosity=2)

  22. # 执行并生成测试报告

  23. # 加个时间戳

  24. now = time.strftime("%y-%m_%d_%H_%M_%S_",time.localtime(time.time()))

  25. # 创建html类型测试报告对象,将执行的过程写入到file_obj中

  26. file_obj = open("D:/pythonProject/P7_P8_Requests/"

  27. "unittest框架/test_report/"

  28. "{}test_report.html".format(now),"w+",encoding="utf-8")

  29. # 创建配置html测试报告的相关信息的对象

  30. runner = HTMLTestRunner.HTMLTestRunner(stream=file_obj,

  31. title="第一次的测试报告",

  32. description="我是测试报告的描述信息")

  33. # 生成html测试报告;如果要生成测试报告,则不通过unittest.main()方法执行

  34. runner.run(main_suite)

查看执行结果

配置详细的html测试报告

在测试用例中加上注释信息,即可在html报告中体现,能更好的展示每个用例的信息;

一、通过添加 3对双引号:"""内容"""

通过在类的下面添加 3对双引号 """测试类01的详细信息""";在测试方法下面添加 3对双引号 """test_aaa方法的详细信息""";如下图:

 在生成的测试报告中可更好的展示每条用例的作用

 二、只在测试方法中添加

self._testMethodName=设置测试用例名称,
self._testMethodDoc=设置测试用例详情

注意:上方下划线只有一个,不要搞错!

在测试用例方法中添加注释信息;如下图

查看生成的测试报告

方式二、通过TextTestRunner()方法生成text类型的测试报告

代码示例:

 
  1. # 使用discover()来实现添加执行整个目录下所有的测试用例

  2. import os

  3. import unittest

  4. import HTMLTestRunner

  5. import time

  6. # 获取当前路径

  7. curren_path = os.path.dirname(__file__)

  8. # 获取测试用例目录的路径

  9. case_path = os.path.join(curren_path,"all_case")

  10. # 从当前路径回到上一层路径

  11. # case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))

  12. # 匹配测试用例路径下的所有的测试方法

  13. discover = unittest.defaultTestLoader.discover(start_dir=case_path, # 用例路径

  14. pattern="*_case*.py",

  15. top_level_dir=None) # 文件类型

  16. # 创建主套件

  17. main_suite = unittest.TestSuite()

  18. # 把测试用例路径添加到主套件中

  19. main_suite.addTest(discover)

  20. # 执行主套件里的测试用例;如果要生成测试报告,则不通过unittest.main()方法执行

  21. # unittest.main(defaultTest="main_suite",verbosity=2)

  22. # 生成text类型的测试报告

  23. with open('./report/test_result.txt','w',encoding='utf-8') as file:

  24. test_runner = unittest.TextTestRunner(stream=file,descriptions="执行用例的测试报告", verbosity=2)

  25. test_runner.run(main_suite)

查看执行结果

 

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

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值