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 在哪下载的问题了!

(0)

相关推荐

  • C# 启动 Flask for Python

    概览 最近有个需求是通过c#代码来启动 python 脚本.嘿~嘿!!! 突发奇想~~既然可以启动 python 脚本,那也能启动 flask,于是开始着手操作. 先看gif图 准备 因为使用的是.N ...

  • python3.7环境下安装pyspider遇到的问题及解决办法

    最近在学习爬虫的过程中,发现了一个开源的爬虫框架pyspider. pyspider支持可视化创建和调试爬虫脚本. 后台启动pyspider进程后,可以在浏览器中输入http://127.0.0.1: ...

  • httprunner 3.x学习6 - 生成 html 测试报告

    前言 HttpRunner 3.x版可以使用所有的 pytest 插件,包括测试报告插件,像的 pytest-html 和 allure-pytest . pytest-html httprunner ...

  • httprunner学习10-测试报告ExtentReport

    前言 httprunner默认生成的报告不怎么美观,里面还有第二套报告模板extent_report_template.html. extent_report_template 使用 hrun -h ...

  • httprunner 2.x学习17 - summary结果统计和 html 报告生成

    前言 调用HttpRunner类的run方法运行用例后,会返回测试结果统计. 得到测试结果后加载html测试报告模板,最终得到一个html测试报告. summary结果统计 接着上一篇调用HttpRu ...

  • Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)

    前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,可以生成HTML格式的. unittest里面方法是不能生成html格式报告的,需要导入一个第三方的模块:HTML ...

  • httprunner 2.x学习5-测试用例集(testsuite)

    前言 httprunner 分层主要是分三层:api.testcase.testsuites 前面讲分层的时候讲到api单独封装每个接口,testcase可以有多个测试步骤,调用api层的接口是写测试 ...

  • httprunner 2.x学习4-测试用例分层

    前言 httprunner 2.x版本最大的改进就是分层机制了,1.x的版本是线性设计的,每个用例都是独立的. 一个用例里面涉及到流程性的,我们测试修改个人信息是否修改成功,在yaml文件里面需写3个 ...

  • httprunner 2.x学习3-variables变量声明与引用

    前言 在 HttpRunner 中,支持变量声明(variables)和引用($var)的机制.在 config 和 test 中均可以通过 variables 关键字定义变量,然后在测试步骤中可以通 ...

  • httprunner 2.x学习2-extract提取token值参数关联

    前言 如何将上个接口的返回token,传给下个接口当做请求参数?这是最常见的一个问题了. 解决这个问题其实很简单,我们只需取出token值,设置为一个中间变量a,下个接口传这个变量a就可以了.那么接下 ...

  • httprunner 2.x学习1-环境与登录接口案例

    前言 由于之前写过一个 httprunner 系列是针对 1.5.8 版本写的教程, httprunner版本更新的还挺快的,最近已经到3.x版本了,看了下改动还是挺大的. 但是考虑到目前还是有很多公 ...