资讯专栏INFORMATION COLUMN

JMeter使用记录整理(十)非GUI模式

newsning / 3773人阅读

摘要:易于持续集成,可通过脚本命令执行,实际压测建议使用命令行模式。

目录

命令参数

执行示例

生成测试报告

利用已有.jtl文件生成报告

无.jtl文件生成测试报告

报告内容解析

Dashboard

Charts

所遇问题


JMeter可以运行模式有两种,一种是GUI图形,另一种是命令模式运行也就是非GUI模式。

GUI:由于是图形界面,所以在运行时会消耗很多资源,而且图形界面运行时结果是保存在Jmeter运行的内存中,如果是做长时的性能测试,内存就会占用的很高,首先就是影响性能结果的准确性,其次当内存增长到一定程度,就会报错,甚至可能出现卡死/宕机。

非GUI优势:通过命令运行,无图形化界面,消耗压力机资源较低,可以支持较大的并发。便捷快速,仅需启动命令行,输入命令便可执行。易于持续集成,可通过shell脚本命令执行,实际压测建议使用命令行模式。

命令参数

-h 帮助

-n 命令行模式

-t 指定要运行的JMX脚本路径

-l 指定结果文件路径,运行前要确保xxx.jtl不存在,不然报错

-r 分布式(远程)执行,服务器列表由JMETER_HOME/bin/Jmter.properties文件中remote_hosts指定

-R 指定分布式(远程)服务器列表,参数为服务器列表,配置形式同remote_hosts

-j 指定执行日志路径

-g CSV结果文件,指定测试执行结果文件路径,仅用于生成测试报表

-e 设置测试完成后生成测试报表

-o 报表文件夹路径,执行测试报表生成文件夹,文件夹必须为空或者不存在

-H 指定代理服务器域名或代理服务器IP,一般填写代理IP

-P 指定代理服务器端口号

执行示例

执行测试脚本

jmeter -n -t test.jmx

指定结果文件及日志路径

jmeter -n -t test.jmx -l report/01-result.csv -j report/01-log.log

远程调用remote_hosts中配置的所有服务器

jmeter -n  -t  test.jmx  -r  -l report/01-result.csv -j report/01-log.log

远程调用指定服务器

jmeter -n -t  test.jmx  -R 192.168.xx.xx:1029 -l report/01-result.csv -j report/01-log.log

在脚本运行过程中,由于无界面,命令窗口会每隔一段时间打印一下当前的运行状态,在窗口中会看到类似下面的信息

summary+ 是开始这个时点的报告。

summary= 是总结它之前的报告,呈现出的是当前时点之前总的情况,通常是均值。

最后一个summary=是本次压测总的情况,如果脚本按时正常结束的话,最后一次summary里面的值应该和从GUI打开聚合报告或概括报告的值是一致的。

生成测试报告

从3.0版本开始,Jmeter引入了Dashboard Report模块,用于生成HTML类型的可视化图形报告。

利用已有.jtl文件生成报告

如果已经有经过测试生成的.jtl文件,可以利用该文件直接生成HTML可视化测试报告。

进入jmeter的bin目录下,输入如下命令:

jmeter -g xxx.jtl -o /report

# -g:后跟xxx.jtl文件所在的路径

# -o:后跟生成的HTML文件存放的路径

无.jtl文件生成测试报告

如果还未生成.jtl文件,则可以通过如下命令,一次性完成测试执行和生成HTML可视化报告的操作,进入jmeter的bin目录下,输入如下命令:

jmeter -n -t xxx.jmx -l xxx.jtl -e -o /report

# -n:以非GUI形式运行Jmeter

# -t:source.jmx 脚本路径

# -l:result.jtl 运行结果保存路径(.jtl),此文件必须不存在

# -e:在脚本运行结束后生成html报告

# -o:用于存放html报告的目录

执行截图:

PS:(linux系统和windows系统命令一样)需要注意的是,生成的.jtl文件路径下,不能存在同名的.jtl文件,否则会执行失败。

查看测试报告:

报告内容解析

Dashboard

Test and Report information

file:文件名

start time:开始时间

end time:结束时间

filter for display:过滤器

APDEX (Application Performance Index)

APDEX:性能指数,是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量。下图表示为通用用户满意度区域,0代表没有满意用户,1则代表所有用户都满意。实际业务系统开发过程中,1是团队的追求目标。

T(Toleration threshold):容忍或满意阈值

F(Frustration threshold):失败阈值

Requests Summary

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

Statistics

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

Errors

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

Top 5 Errors by sampler

样本前五个错误

Charts

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: 响应时间分布

所遇问题

执行命令时:WARNING: Could not open/create prefs root node Software/JavaSoft/Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.

原因:

不是管理员权限在运行,需要管理员权限运行

解决方法:

win+R输入regedit回车,打开注册表编辑器。

找到HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft。

右键单击权限,找到使用的非管理员账户,然后更改权限为完全控制。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121941.html

相关文章

  • jmeter web性能测试实例

    jmeter web性能测试实例 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ma...

    IT那活儿 评论0 收藏1191
  • 还在问用什么来做接口测试?万能Jmeter打造性能测试数据平台。jmeter 【 yyds】

    摘要:况且,即便使用了插件,也不能实现历史数据追溯,数据持久化保存等功能。先来说下这套解决方案的原理,在运行过程中,将产生的性能数据写入到数据库里,然后定时从数据库中读取性能数据,并分类展示到页面上。而提供了将性能数据写入到的组件。 前 言 在服务端性能测试工具中,Jmeter毫无疑问是其中的王...

    notebin 评论0 收藏0
  • 论性能测试

    摘要:吞吐量一般结合业务需求而定服务器资源占用占用率内存使用率命中率篇是一种预测系统行为和性能的负载测试工具。负载测试与压力测试都是性能测试。通过平台接口可进行合理的性能测试。有利于测试人员及时定位问题。 Part 1:性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 A. 类别 性能测试包括负载测试、压力测试、基准测试等。 i. 负...

    qpal 评论0 收藏0
  • 2021了,不会还有测试人员认为Jmeter就等于性能测试吧!

    摘要:认为就等于性能测试,其实这是不对的。性能测试定义指通过自动化的测试工具模拟多种正常峰值以及异常负载条件来对系统的各项性能指标进行测试。另外,从业务角度来说也可以使用访问人数天或页面访问量天做为单位。 随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除了需要保证基本的...

    luffyZh 评论0 收藏0
  • 云智慧压测实战分享之JMeter工具使用初探

    摘要:有了测试脚本,通过线程组来模拟真实用户对服务器的访问压力。不同的是,这些类型的线程执行测试结束后执行定期的线程组。线程组中包含的线程数量在测试执行过程中是不会发生改变的。逻辑控制器元件只对其子节点中的取样器和逻辑控制器作用。 工欲善其事必先利其器,要保证移动应用产品在上线之后能稳定运行于各种复杂环境,仅仅进行功能测试是远远不够的,压力测试越来越被应用开发商所重视。而压力测试从传统的内部...

    venmos 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<