Jmeter输出报告转allure2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter输出报告转allure2相关的知识,希望对你有一定的参考价值。

参考技术A 最近发现公司很多是jmeter进行的自动化测试,存在的问题:原生报告巨丑无比,并且还没有那么友好的展示详情。

话不多说,开搞。

首先是jmeter配置的调整,需要拿到整个请求的详情

jmeter.save.saveservice.output_format=xml

jmeter.save.saveservice.response_data=true

jmeter.save.saveservice.samplerData=true

jmeter.save.saveservice.requestHeaders=true

jmeter.save.saveservice.url=true

jmeter.save.saveservice.responseHeaders=true

这个时候就会发现输出的xml报告包含了用例的层级和详情信息

<httpSample t="1" lt="1" ts="1450684950333" s="true" lb="app.testdelay" rc="200" rm="OK" tn="appdelay-3000g3m 1-1" dt="" by="2265"/>

t表示从请求开始到响应结束的时间

lt表示整个的空闲时间

ts表示访问的时刻

s表示返回的结果true表示成功,false表示失败

lb表示标题

rc表示返回的响应码

rm表示响应信息

tn表示线程的名字“1-138”表示第1个线程组的第138个线程。

dt表示响应的文件类型

by表示请求和响应的字节数

到这里差不多完成一半了,有这个xml,我把它解析成自己想要的pytest allure不就行了

        #通过命令行来执行 ,例如python3 dealReportXml.py result.xml test_demo.py report/resource

细心的你会发现,这里面的时间是错误的,别急,我们来处理一下。

回头看看jmeter报告中的协议

t表示从请求开始到响应结束的时间

lt表示整个的空闲时间

ts表示访问的时刻

s表示返回的结果true表示成功,false表示失败

lb表示标题

rc表示返回的响应码

rm表示响应信息

tn表示线程的名字“1-138”表示第1个线程组的第138个线程。

dt表示响应的文件类型

by表示请求和响应的字节数

只要我们把对应的时间替换报告中对应的时间即可

Allure安装及使用

Allure是一个独立的报告插件,生成美观易读的报告

在Python3版本中,安装Allure方法:    

打开cmd,输入pip install allure-pytest即安装好了。

报告转html工具安装

allure-2.6.0.zip已经下载了,放在了E:progromesallure-2.7.0这个目录下

将压缩包内的bin目录配置到path系统环境变量

在项目的使用

1, 配置文件中,

addopts = -s --alluredir=./report --reruns 0

2,进入report上级目录,即点击一下你的项目名,在Terminal中执行命令  

allure generate report/ -o report/html --clean

等3秒左右,在提示下,输入pytest

 

结果    report目录下会生成index.html文件,即为可视化报告

以上是关于Jmeter输出报告转allure2的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter输出完美报告

Jmeter 压力测试并输出HTML报告

jenkins+ant输出jmeter接口测试报告配置

jmeter非GUI(cmd命令行)模式的压测和输出测试报告

Jenkins传参修改jmeter的报告名称和详细报告地址

JMETER测试报告导出