一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成。Jmeter支持接口的测试,Ant支持自动构建,而Jenkins支持持续集成,所以三者组合在一起可以构成一个功能完善的接口自动化测试平台。
搭建流程参考我之前一篇文章
Jmeter+Ant+Jenkins接口自动化测试平台搭建
Jmeter默认生成报告不是很详细,因此我们需要进行优化。这里我们使用新的报告模板:jmeter-results-detail-report_30.xsl 默认的报告模板是jmeter-results-detail-report_21
1.打开 build.xml 将21改为30
2.使用新的样式表shanhe.xsl,放在jmeter\extras下,build文件新增将jtl转化为html的语句(查看jmeter版本是否自带,没有新建一个)
补充删除 .jtl的代码,如果不删除每次迭代的记录都会显示在报告里面,显得很冗余。
funcMode = ${funcMode} 进入Jmeter的bin目录,找到jmeter.properties文件打开。然后将以下代码取消注释状态,并改为true
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=true
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
# Only available with HttpClient4
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=true
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true最后执行即可生成最新的报告:样式如下,可以清晰看到每一个请求发送,响应内容。

如果生成的报告为空,则说明jmeter脚本有错误,此时可以打开jmeter的bin目录中的jmeter.log日志文件,查看具体的报错信息。
打开jmeter.results.shanhe.me.xsl文件定位该元素的类在该类的样式下增加自动换行的属性
#right-panel .data { line-height: 19px; white-space: initial; }
运行一下,断言结果可以自动换行了。其他部分换行按照同个方法即可

上图可以看到,断言输出的换行"\n"被编译成一个空格,把断言结果用pre标签包起来
运行,断言结果换行符起作用了看起来差不多了(∩_∩)~

这个问题没有遇到,仅作为记录,有遇到的小伙伴欢迎留言
测试报告为空,MinTime和MaxTime为NaN
1.样式表版本不对,所以网上找了到jmeter-results-detail-report_21.xsl,下载放到jmeter->extra下
2.把jmeter->lib下的xalan.jar、serializer.jar复制到ant->lib下
Date report: Host: 测试日志
Summary
# Samples Success Failures Success Rate Average Time Min Time Max Time 90% Line QPS
Pages
URL # Samples Success Failures Success Rate Average Time Min Time Max Time 90% Line QPS Failure LongTime 0"># = $failureCount"> javascript:change('page_details_ ')![]()
page_details_ _image page_details_Details for Page " "Thread Iteration Time (milliseconds) Bytes Success
0">Failure Detail
0">
Response Failure Message Response Data -
NaN
NaN
NaN
JMeter Test Results - Thread:
success failure SamplerThread Name : Timestamp : Time : msLatency : msBytes : Sample Count : Error Count : Response Code : Response Message :
Assertionfailure failure Failure : Error : Failure Message :
RequestMethod/Url :
Query String :
Cookies :
Request Headers :
ResponseResponse Headers :
Response Data :
Response File :