接口测试 [测试报告优化] Jenkins+JMeter 接口自动化

Believe · 2015年12月11日 · 最后由 李佳凯 回复于 2022年06月01日 · 9688 次阅读

之前看到社区里有大侠分享过 Jenkins+JMeter 接口自动化的实现,比如@snake 的精彩贴子:https://testerhome.com/topics/2580

所以具体实现过程我这里不多写了,我重点写下对生成的HTML 测试报告进行优化

如果按 JMeter 默认设置,生成报告如下:

从上图可以看出,结果信息比较简单,对于运行成功的 case,还可以将就用着。但对于跑失败的 case,就只有一行 assert 错误信息。(信息量太少了,比较难找到失败原因)

优化大致过程

1、修改 jmeter.properties 文件,打开一些输出内容开关(下图根据需要选择相关项,具体就不用多说了吧)

2、制定一份自己的输出模板。(不用默认的 jmeter_home/extras/jmeter-results-detail-report.xsl 模板,也可以网上自己找份。)
3、最后执行,生成对应的 HTML 报告(一般我们都在 linux 环境 下运行,语句大致如下,其中 my_project_template.xsl 就上第 2 步说的定制模板,这个是网上找的一份。)

xsltproc $jmeter_home/extras/my_project_template.xsl $my_project_workspace/result/jtl/$test_name/${test_name}.jtl > $my_project_workspace/result/html/$test_name/${test_name}.html

最后报告如下:


优化后的 HTML 报告,多了接口地址、接口参数、Headers 信息(包括 cookie、session),而且有返回结果。失败原因一目了然😄

最后附上我的 jmeter 文件样本:

共收到 47 条回复 时间 点赞

模板能提供下么

赞~这个模板和我之前用的这个比较像:http://shanhe.me/node/18/314

其实还是挺好用的,只是我当时走偏了,大部分用例使用不止一个接口,有 n 多 controller ,在这种报告中不好看,而且没带有自动 decode 和 response body 自动换行功能 ,所以最终没用下去。

很厉害呀,很想知道怎么改的呢

—— 来自 TesterHome 官方 安卓客户端

赞,这个模板挺漂亮,在哪里下载

#3 楼 @chenhengjie123 我用的就是这个,不过自己往里面加了些 HTML 代码,用于 summary 信息输出。(对于有 n 个 controller 了,这个模板确实存在不足,可以自己修改下它的内容,实现按 controller 进行分类)

#1 楼 @yangxiangfu 三楼有网址提供下载

#5 楼 @tobecrazy 见三楼回复的网址。

楼主能否分享下模板?主要是往里面加了些 HTML 代码,用于 summary 信息输出这部分?

好东西,专门开千百年不上线的好顶一顶,马克一下

我按照这个步骤修改了但是我的测试报告! 没有显示具体的请求响应信息。请帮助,能帮忙看看吗

你是汽车超人的吗

可以提供下你的模板吗,谢谢

我优化后的 html 报告看不到 Assertion 部分,怎么解决,能提供一下方法么,谢谢

Jenkins 控制界面下,打开 HTML Report 链接后的界面,为什么没有那些样式了
本地文件打开就没问题

你好,我有个问题看一下是什么原因,只有少部分信息,时间也不对

#16 楼 @caitianming jmeter.properties 中的信息你有些要设置成 true

这个怎么改一下?各位大神

#20 楼 @caitianming 参考原先的 xls 模版 将原先的 xls 中关于 summary 的部分拷贝到新的地方,再改下 css 就可以来

#21 楼 @zsx10110 你好方便加下 qq 吗 281599519,

#21 楼 @zsx10110 拷贝了但是一直报错

为什么我的报告的样式加载不出来?求救~~~
console 报:
Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-QoA1SwOr+LTCLr6UbvMcFoTGQtQxmZA0GLRdjVS87aQ='), or a nonce ('nonce-...') is required to enable inline execution.

app-api.html:1 Blocked script execution in 'http://localhost:8080/job/jmeter-api-test/api-test-report/app-api.html' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.

25楼 已删除
26楼 已删除

@zsx10110 原 jmeter-results-detail-report_21.xsl 和 jmeter.results.shanhe.me.xsl 两个的格式都不一样,如果只是拷贝 summary 没办法正常读取,css 的调整能否提供下思路!

@jxxgxldl 只单纯的显示 summary 内容很简单,



<xsl:value-of select="$titleReport"></xsl:value-of>

body {
font:normal 68% verdana,arial,helvetica;
color:#000000;
}
table tr td, table tr th {
font-size: 68%;
}
table.details tr th{
color: #000000;
font-weight: bold;
text-align:center;
background:#1E90FF;
white-space: nowrap;
}
table.details tr td{
background:#eeeee0;
white-space: nowrap;
}
h1 {
margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
}
h2 {
margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
}
h3 {
margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
}
.Failure {
font-weight:bold; color:red;
}

img
{
border-width: 0px;
}

.expand_link
{
position=absolute;
right: 0px;
width: 27px;
top: 1px;
height: 27px;
}

.page_details
{
display: none;
}

.page_details_expanded
{
display: block;
display/* hide this definition from IE5/6 */: table-row;
}








/xsl:template








Date report: Designed for XXX



/xsl:template


Summary




















xsl:choose
Failure/xsl:when
/xsl:choose
/xsl:attribute









Total Success Failures Success Rate Failures Rate MedianTime









/xsl:call-template



/xsl:call-template



/xsl:call-template

/xsl:template




/xsl:template




/xsl:template
但怎么合入 jmeter.results.shanhe.me.xsl?

#24 楼 @taurus 你这个样式问题,我也遇到了,需要运行一下脚本,Jenkins 的就可以正常了

30楼 已删除

楼主能不能提供下你的 xsl 文件。

楼主能不能提供下你的 xsl 文件。@jxxgxldl

Klose Zhang 回复

多谢!!!! @jxxgxldl

Baozhida jmeter+ant+jenkins 接口自动化报告模版 中提及了此贴 03月27日 17:18

楼主能不能提供下你的 xsl 文件。@jxxgxldl
email : meak@sina.com

@jxxgxldl 方便提供下您的模板吗、?

咦,好熟悉的模板,你是分期乐的?

蔡天明 回复

我也出现这种问题,我已经把相关配置改为 ture,但还是出现,你是怎么解决的

Believe 回复



大神,请教个问题
我已经像相关配置改为 ture,但是我生成的报告 Request、Response 没有输出相关信息
怎么解决呢

LL 回复

虽然我不是大神,但是我想说的是 你可以把前面的 # 号都删掉试试行不行~

楼主能不能提供下你的 xsl 文件。@jxxgxldl
email : 390987076@qq.com

感谢三楼提供的模板

@jxxgxldl 方便提供下您的模板吗?谢谢了!1084965052@qq.com

仅楼主可见

@jxxgxldl 兄弟,方便发一下模板吗?18811561684@163.com

楼主发个测试报告模版呗

47楼 已删除

TestReport.jtl:4831:51: Fatal Error! 字符引用 "&#
引用样式文件后,报这个错,该如何解决?求助

一壶清酒 回复

兄 dei 这个解决没呢

@jxxgxldl 方便发一下模板吗?mycute@vip.qq.com

TestNo.007 回复

这边也遇到了这个问题,请问有什么解决思路或者方案吗

一壶清酒 回复

这边也遇到了这个问题,请问有什么解决思路或者方案吗

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册