性能测试【一】:Jmeter的常用操作


推荐使用命令行运行,GUI方式会经常卡死,尤其跑稳定性

一、使用命令行方式运行Jmeter

1、为什么

  • 使用GUI方式启动jmeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死。
  • 所以正确的打开方式是在GUI模式下调整测试脚本,再用命令行模式执行。
  • 命令行方式支持在多个环境下使用,windosw的dos环境下,也可以在linux环境上执行。

2、怎么用

  • 执行路径:执行命令前要检查当前目录是否是%JMeter_Home%\bin 目录;如果 JMeter 脚本不在当前目录,需要指定完整的路径;如果要把执行的结果保存在其他地方也要指定完整的路径。命令中不指定测试计划与测试结果的路径时,默认都是在该目录下。
  • 命令:jmeter -n -t < testplan filename > -l < listener filename >
    在这里插入图片描述

3、示例

  • 例1:测试计划与结果,都在%JMeter_Home%\bin 目录
> jmeter -n -t test1.jmx -l result.jtl 
  • 例2:指定日志路径的:
> 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\resulttab
在这里插入图片描述

4、结果文件

结果文件类型为 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是文件转换模板,这个都可以进行编辑,比如添加一些值显示。

二、生成动态报告

JMeter3.0版本发布后,支持动态报表报告。编写性能测试报告更加容易。 这里是对生成报告示例的详细描述。

测试过程:执行测试文件–》生成测试结果文件—》生成最终的测试报告

1、准备

修改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为未勾选状态

2、命令

jmeter -n -t 【Jmx脚本位置】-l 【中间文件result.jtl位置】-e -o 【报告指定文件夹】 
命令执行测试文件,生成测试结果文件jtl,生成最终的测试报告 

3、报告示例

打开【报告指定文件夹】的index.html页面
在这里插入图片描述

4、报告释义

  • APDEX(Application Performance Index)
    应用程序性能满意度的标准,范围在0-1之间,1表示达到所有用户均满意。是由APDEX公司推出的。计算公式:
    在这里插入图片描述

  • Requests Summary
    请求的通过率(OK)与失败率(KO),百分比显示。

  • Statistics
    数据分析,基本将Summary Report和Aggrerate Report的结果合并。

  • Errors
    错误情况,依据不同的错误类型,将所有错误结果展示。

  • Top 5 Errors by sampler
    top5错误

  • Over Time
    Response Times Over Time: 响应时间
    Bytes Throughput Over Time: 字节接收/发送的数量
    Latencies Over Time:延迟时间

  • Throughput
    Hits Per Second: 每秒点击率
    Codes Per Second: 每秒状态码数量
    Transactions Per Second: 每秒事务量
    Response Time Vs Request: 响应时间点请求的成功/失败数
    Latency Vs Request: 延迟时间点请求的成功/失败数

  • Response Times
    Response Time Percentiles: 响应时间百分比
    Active Threads Over Time: 激活线程数
    Time Vs Threads: 测试过程中的线程数时续图
    Response Time Distribution: 响应时间分布

三、使用问题汇总

1、生成报告时内存溢出,调大启动内存,修改jmeter.properties

# Initial Java Heap Size (in MB)
# Uncomment and change the following line to set the initial Heap Size (default is 512 MB)
HEAP="-Xms1024m"
# Maximum Java Heap Size (in MB)
# Uncomment and change the following line to set the maximum Heap Size (default is 512 MB)
HEAP="-Xmx1024m"

2、稳定性可能生成大量日志致磁盘爆表,使用crontab清理

crontab -u app -e
*/5 * * * * >/home/app/jmeter/jmeter.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QQ719872578

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值