在每次启动Jmeter的时候,可以看到这个提示。

 

性能测试,不仅对服务端的性能有要求,对负载机同样有要求。在线程压力不大的情况下,使用GUI的模式不会有问题,方便直接查看测试的执行情况。但是,如果线程压力很大,GUI会经常因为“OutOfMemoryError”等问题卡死。所以,一般我们用GUI模式来创建和调试压力测试数据,调试结束后,使用CL命令行模式来执行测试。此外,CL模式产生的结果报告看着会更舒服些。

先了解一下jmeter的执行命令。举例如下:

jmeter -n -t D:\test.jmx -r -l D:\test.jtl -e -o D:\resultReport

 

参数说明:

    -n : 非GUI 模式执行jmeter;

    -t : 执行的jmeter文件,jmx格式;

    -r : 远程将所有agent启动,用在分布式测试场景下;

    -l : 指定生成测试结果的保存文件, jtl 格式;

    -e : 测试结束后,生成测试报告;

    -o : 指定测试报告的存放位置;

    注意:

(1)-o 指定的文件及文件夹,必须不存在 ,否则执行会失败;因此,-o后面的文件夹或文件一定为空;

(2)l 和o的目录不是同一个目录,要分开放置不同内容;

下面是执行过程,在console界面会打印出一些信息。

 

打开结果报告的文件夹resultReport,可以看到生成了如下文件:

 

打开index.html,可以查看结果报表。报告的内容比较详细,而且风格也是比较简洁,推荐使用。下图是报告左侧的导航栏,是根据jmx文件配置产生的结果记录:

 

 

如果不喜欢这种report方式,习惯了jmeter GUI的结果展示,那么可以在jmeter GUI中打开jtl文件,这样就可以在jmeter GUI中查看结果了。具体操作如下:

 

 

如果命令行模式依旧会报出”OutOfMemoryError”的问题,有2个方案可以尝试解决。

(1)修改Jmeter启动文件,更改设置。

JMeter是一个纯Java开发的工具,内存是由java虚拟机JVM管理;如果出现了内存溢出的问题,可以通过调整JVM内存相关的参数进行优化。打开jmeter.bat文件,对一下这些配置项进行编辑:

调整堆内存的大小:

将默认的HEAP,调整为set HEAP=-Xms1024m -Xmx1024m;

调整堆内存中新生带的大小:

将默认的NEW,调整为set NEW=-XX:NewSize=512m -XX:MaxNewSize=512m;

调整堆内存中永久带的大小:

将默认的PERM,调整为set PERM=-XX:PermSize=256m -XX:MaxPermSize=1024m;

 

根据经验,heap最多设置为物理内存的一半,默认设置为512M.如果heap超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出,原因java比较吃内存,占CPU.

(2)jmx文件中删除一些不必要的结果记录。

例如:察看结果树

这个listener只是调试时用,很占资源,在执行前删掉。

例如:聚合报告中点击Configure,只记录自己需要的,其他的都勾选掉不要。

 

版权声明:本文为xbxblog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xbxblog/p/9602885.html