专栏首页从零开始学自动化测试httprunner 2.x学习9-生成测试报告ExtentReport

httprunner 2.x学习9-生成测试报告ExtentReport

前言

httprunner 可以自定义生成测试报告的模板,1.x版本里面有个 extent_report_template.html 模块非常美观。 但是生成报告的时候会报错:jinja2.exceptions.UndefinedError: ‘dict object’ has no attribute ‘meta_data’ 环境:httprunner==2.4.3

遇到问题

httprunner 2.x 版本已经去掉 extent_report_template.html 了,所以在\Lib\site-packages\httprunner\templates 下找不到。 可以把1.x 版本里面的模块复制出来,在项目跟目录下新建一个 report目录,再新建 report/template 目录。

运行 case 和 testsuites 目录下用例

hrun case testsuites —report-template reports/template/extent_report_template.html

运行后出现报错: jinja2.exceptions.UndefinedError: ‘dict object’ has no attribute ‘meta_data’

!!!!!!!!!! exception stage: generate html report !!!!!!!!!!
Traceback (most recent call last):
  File "E:\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "E:\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\soft\venv_hrun\Scripts\hrun.exe\__main__.py", line 7, in <module>
  File "d:\soft\venv_hrun\lib\site-packages\httprunner\cli.py", line 101, in main
    report_file=args.report_file
  File "d:\soft\venv_hrun\lib\site-packages\httprunner\report.py", line 321, in gen_html_report
    ).render(summary)
  File "d:\soft\venv_hrun\lib\site-packages\jinja2\environment.py", line 1090, in render
    self.environment.handle_exception()
  File "d:\soft\venv_hrun\lib\site-packages\jinja2\environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "d:\soft\venv_hrun\lib\site-packages\jinja2\_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "<template>", line 264, in top-level template code
  File "d:\soft\venv_hrun\lib\site-packages\jinja2\environment.py", line 471, in getattr
    return getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'meta_data'

这个主要是 2.x 版本的生成的报告跟 1.x 不一样导致的。

解决办法

先找个适配2.x 版本的模板, 我试了下目前最高只能适配到 httprunner2.4.3 版本, 其他高点的版本不适配了。 先降级 之前的httrunner2.5.7 版本,改成 httprunner2.4.3

pip install httprunner==2.4.3 —index-url https://pypi.douban.com/simple

版本降级后,把新的模板放到 report/template 目录,为了跟之前的区分开,这里模板名称改成 extent_report_template2.4.3.html

再次运行用例

hrun case testsuites —report-template reports/template/extent_report_template2.4.3.html

最终生成报告效果

下载地址

接下来小伙伴门最关心的是 extent_report_template2.4.3.html 在哪下载的问题了!

第一步先关注微信公众号:yoyoketang 回复:template 领取下载地址

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang),作者:上海悠悠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python测试开发django-36.OneToOneField关系查询

    前面一篇在xadmin后台一个页面显示2个关联表(OneToOneField)的字段,使用inlines内联显示。本篇继续学习一对一(OneToOneField...

    上海-悠悠
  • Cypress web自动化24-运行用例生成allure报告

    在cypress run的执行过程中,每一个测试用例文件都是完全单独运行的。执行完用例后可以生产对应的报告文件,再结合 allure 可以生成 allure 的...

    上海-悠悠
  • Selenium3+python自动化50-环境搭建(firefox)

    前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的。 安装环境过程中...

    上海-悠悠
  • Python编程常见出错信息及原因分析(2)

    (1)缩进错误 演示代码: >>> if 5>3: print('5>3') SyntaxError: expected an indented block >...

    Python小屋屋主
  • 熟悉servlet的页面跳转

    ydymz
  • 当Java遇见了Html--Servlet篇

    一、什么是servlet servlet是在服务器上运行的小程序。一个servlet就是一个 java类,并且通过“请求-响应”编程模型来访问的这个驻留在服务器...

    方志朋
  • Linux(centos7)搭建gitlab

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    拓荒者
  • 基于Servlet实现的简单登陆练习

    源码分享: 链接:https://pan.baidu.com/s/1LNtaEn7RgceO1Zez9DyLRA 提取码:w739

    时间静止不是简史
  • JavaEE基础(02):Servlet核心API用法详解

    知了一笑
  • python测试开发django-36.OneToOneField关系查询

    前面一篇在xadmin后台一个页面显示2个关联表(OneToOneField)的字段,使用inlines内联显示。本篇继续学习一对一(OneToOneField...

    上海-悠悠

扫码关注云+社区

领取腾讯云代金券