使用GUI方式启动jmeter,运行线程较多的测试时,会形成内存和CPU的大量消耗,致使客户机卡死。html
因此正确的打开方式是在GUI模式下调整测试脚本,再用命令行模式执行。python
命令行方式支持在多个环境下使用,windosw的dos环境下,也能够在linux环境上执行。linux
执行路径:执行命令前要检查当前目录是不是%JMeter_Home%\bin 目录;若是 JMeter 脚本不在当前目录,须要指定完整的路径;若是要把执行的结果保存在其余地方也要指定完整的路径。命令中不指定测试计划与测试结果的路径时,默认都是在该目录下。git
命令:jmeter -n -t <testplan filename> -l <listener filename>apache
例1:测试计划与结果,都在%JMeter_Home%\bin 目录windows
> jmeter -n -t test1.jmx -l result.jtl 分布式
例2:指定日志路径的:post
> jmeter -n -t test1.jmx -l report\01-result.csv -j report\01-log.log 性能
例3:默认分布式执行:测试
> jmeter -n -t test1.jmx -r -l report\01-result.csv -j report\01-log.log
例4:指定IP分布式执行:
> jmeter -n -t test1.jmx -R 192.168.10.25:1036 -l report\01-result.csv -j report\01-log.log
例5:生成测试报表
> jmeter -n -t 【Jmx脚本位置】-l 【中间文件result.jtl位置】-e -o 【报告指定文件夹】
> jmeter -n -t test1.jmx -l report\01-result.jtl -e -o tableresult
例6:已有jtl结果文件,运行命令生成报告
> jmeter -g【已经存在的.jtl文件的路径】-o 【用于存放html报告的目录】
> jmeter -g result.jtl -o ResultReport
注意:
1)-e -o以前,须要修改jmeter.properties,不然会报错;
2)-l 与-o 目录不同,最后生成两个文件夹下。
3)命令中不写位置的话中间文件默认生成在bin下,下次执行不能覆盖,须要先删除result.jtl;报告指定文件夹同理,须要保证文件夹为空
模板为report-template,结果目录D:\apache-jmeter-3.2\bin\resulttable
结果文件类型为 jtl 或 csv,测试计划里添加的哪一种监听器,就可经过JMeter的相应的监听器浏览结果文件,查看最终的结果。
也能够用xslproc,将jtl格式转为html的形式。
调用jmeter,并生成报告
${JmeterHome}/bin/jmeter.sh -n -t ScriptName.jmx -l log.jtl
将jtl格式转换成html格式
xsltproc ${JmeterHome}/extras/jmeter-results-detail-report.xsl log.jtl> newlog.html
说明:
jmeter-results-detail-report.xsl 、jmeter-results-report.xsl是文件转换模板,这个均可以进行编辑,好比添加一些值显示。
报告文件类型见下文。
Jmeter Thread Group中若是存在HTTP request执行失败,就对整个Thread Group从新执行,限定最大执行次数N次
JMeter3.0版本发布后,支持动态报表报告。编写性能测试报告更加容易。 这里是对生成报告示例的详细描述。
测试过程:执行测试文件--》生成测试结果文件---》生成最终的测试报告
修改jmeter.properties
把save这块的内容基本上都改为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=false 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 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=false 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 # Timestamp format - this only affects CSV output files # legitimate values: none, ms, or a format suitable for SimpleDateFormat jmeter.save.saveservice.timestamp_format=ms jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss
在jmeter.properties或者user.properties确认以下配置项:
jmeter.save.saveservice.bytes = true jmeter.save.saveservice.label = true jmeter.save.saveservice.latency = true jmeter.save.saveservice.response_code = true jmeter.save.saveservice.response_message = true jmeter.save.saveservice.successful = true jmeter.save.saveservice.thread_counts = true jmeter.save.saveservice.thread_name = true jmeter.save.saveservice.time = true # the timestamp format must include the time and should include the date. # For example the default, which is milliseconds since the epoch: jmeter.save.saveservice.timestamp_format = ms # Or the following would also be suitable jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss
若是但愿在Errors报告中展现更详细数据,须要确保以下配置
jmeter.save.saveservice.assertion_results_failure_message = true
若是使用了事务控制器(Transaction Controller),确认Generate parent sample为未勾选状态
jmeter -n -t 【Jmx脚本位置】-l 【中间文件result.jtl位置】-e -o 【报告指定文件夹】
命令执行测试文件,生成测试结果文件jtl,生成最终的测试报告
打开【报告指定文件夹】的index.html页面
应用程序性能满意度的标准,范围在0-1之间,1表示达到全部用户均满意。是由APDEX公司推出的。计算公式:
请求的经过率(OK)与失败率(KO),百分比显示。
数据分析,基本将Summary Report和Aggrerate Report的结果合并。
错误状况,依据不一样的错误类型,将全部错误结果展现。
top5错误
Response Times Over Time: 响应时间
Bytes Throughput Over Time: 字节接收/发送的数量
Latencies Over Time:延迟时间
Hits Per Second: 每秒点击率
Codes Per Second: 每秒状态码数量
Transactions Per Second: 每秒事务量
Response Time Vs Request: 响应时间点请求的成功/失败数
Latency Vs Request: 延迟时间点请求的成功/失败数
Response Time Percentiles: 响应时间百分比
Active Threads Over Time: 激活线程数
Time Vs Threads: 测试过程当中的线程数时续图
Response Time Distribution: 响应时间分布
测试的简单过程记录:使用Jmeter测试带有Ajax请求的页面
实时显示jmeter测试结果,可以使用:python+Taurus+jmeter 连接
JMeter-自动生成测试报告这里提到了在windows下如何手动自动生成测试报告
bat脚本
del /s /Q D:\apache-jmeter-3.2\bin\result.jtl rd /s /Q D:\abc\HttpReport md D:\abc\HttpReport jmeter -n -t D:\apache-jmeter-3.2\bin\test1.jmx -l result.jtl -e -o D:\abc\HttpReport
del是删除jtl,rd是删除报告文件夹,md是重建报告文件夹(可省略),最后执行命令生成报告。