Python接口自动化之ExtentHTMLTestRunner测试报告

发表于:2021-12-03 09:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:全栈测试开发日记    来源:CSDN

  引言
  结合HTMLTestRunner做的改动,页面内容拿的HttpRunnerManager中的测试报告模板(感谢HttpRunnerManager),HttpRunnerManager是直接将结果数据传递给报告,结合原HTMLTestRunner是在执行测试的同时将结果写到测试报告中,功能还不够完善,但是基本功能都已ok;模板地址:https://github.com/wishchen/ExtentHTMLTestRunner
  示例
  from ExtentHTMLTestRunner import HTMLTestRunner
  filename="/*/result.html"
  fp=open(filename,'wb')
  runner=HTMLTestRunner(
                        stream=fp,
                        title='自动化测试报告',
                        description='用例执行情况:')
  在报告中展示截图:
  · 截图须和html报告在同一目录下;
  · 需要在对应的case中打印一下截图名称,截图名称以screenshot_*.png格式命名.
  · 报告需要的extent.js、extent.css可能下载不了,如果报告展示有问题可能是这些资源没有拿到,注意检查下。
  案例讲解
  项目结构:
  方法1:
  from ExtentHTMLTestRunner import HTMLTestRunner
  import unittest
  class InterfaceTest(unittest.TestCase):
      def test_1(self):
          print("测试")
          print("screenshot_baidu.png")
      def test_2(self):
          a = 1
          b = 2
          return  a*b
  if __name__ == '__main__':
      suite = unittest.TestSuite()
      suite.addTest(unittest.makeSuite(InterfaceTest))
      filename="result22.html"
      fp=open(filename,'wb')
      runner=HTMLTestRunner(
                            stream=fp,
                            title='自动化测试报告',
                            description='用例执行情况:')
      runner.run(suite)
      fp.close()
  运行结果:
  第二条用例没有输出什么,所以是空。
  方法2:
  项目结构和上面是一样的,只是用例代码不一样:
  __author__ = 'Leo'
  from ExtentHTMLTestRunner import HTMLTestRunner
  import unittest,os,requests
  # 获取根目录
  BASE_DIR = os.path.dirname(os.path.dirname(__file__))
  # 获取指定目录test_case
  TEST_CASE = os.path.join(BASE_DIR,"test_case")
  class InterfaceTest(unittest.TestCase):
      def test_1(self):
          url = 'https://api.apiopen.top/getWangYiNews'
          data = {
              'page':1,
              'count':1
          }
          r = requests.post(url=url,data=data)
          print(r.text)
      def test_2(self):
          a = 1
          b = 2
          # Name and print in this format "screenshot_*.png" if you want to show screenshot in report.
          print("screenshot_baidu.png")
          return  a*b
  if __name__ == '__main__':
      # suite = unittest.TestSuite()
      # suite.addTest(unittest.makeSuite(InterfaceTest))
      discover = unittest.defaultTestLoader.discover(TEST_CASE, pattern='test_002.py')
      filename="result.html"
      fp=open(filename,'wb')
      runner=HTMLTestRunner(
                            stream=fp,
                            title='自动化测试报告',
                            description='用例执行情况:')
      runner.run(discover)
      fp.close()
  运行结果:
  第二条用例使用了截图功能,如图所示:

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号