引用:https://www.cnblogs.com/peak911/p/9229207.html
https://blog.csdn.net/weixin_42485712/article/details/107374001
Å在压测过程中jmeter报内存溢出,可能的原因有很多。要注意下面三点:
1、单击压测过程中使用过多的线程,官网建议1000-2000。具体看机器的配置和启动应用的情况。(A single JMeter client running on a 2-3 GHz CPU (recent CPU) can handle 1000-2000 threads depending on the type of test.)
(官网:http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html)
2、监听器里面配置写入到文件,不写入到文件的话所用监听结果存放在内存。还要注意不要使用“察看结果树”监听器。
3、运行压测过程中使用no-gui模式,不要使用界面压测,使用jmeter -n -t这样的命令去运行。
一、为什么使用NO-GUI?
GUI(图形化界面)消耗更多资源,如CPU和内存,容易使压力机达到瓶颈,从而影响测试结果。
GUI(图形化界面)不支持大型的负载测试和性能测试,并发较大时,JMeter 会崩溃。
NO-GUI(命令行)可以把脚本配置到Jenkins上实现持续集成,做成自动化测试。
二、操作步骤
①配置jmeter环境变量,可以参照文章Jmeter系列之简介与环境安装。
②在GUI模式下,调试好自动化脚本。
③在命令行运行自动化脚本。
④在JMeter 中导入jtl文件或浏览器查看生成的html报告。
三、NO-GUI参数介绍
命令行参数较多,这里列举常用的一些参数。
-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
-e :在脚本运行结束后生成html报告
-o :用于存放html报告的目录
例如:jmeter -n -t test1.jmx -l result.jtl
四、NO-GUI生成jtl结果文件
① 新建文件夹,scrip存放jmx脚本文件,result存放jtl文件,report存放html报告文件。
②Windows下,快捷键win+R,输入cmd,打开命令行模式。
③切换到存放脚本的目录下。
④ 输入命令:jmeter -n -t auto_test.jmx -l ..\result\result.jtl。
命令解释:
-n 在非 GUI 模式下运行 JMeter。
-t auto_test.jmx 运行auto_test.jmx的测试脚本。
-l result.jtl 运行结果记录在result.jtl中。
⑤ 运行成功后,在result目录下,会生成result.jtl文件。
⑥打开jmeter界面模式,Test Plan右键,创建View Results Tree及Summary Report。
⑦ 分别在View Results Tree及Summary Report选择生成的result.jtl,选择完后会展示结果信息。
五、NO-GUI生成html测试报告
1.环境要求
① Jmeter3.0版本之后开始支持动态生成测试报表;
② JDK版本1.7以上;
③ 需要JMX脚本文件。
2.命令行生成报告
① 在脚本文件路径下输入命令:jmeter -n -t auto_test.jmx -l ..\result\result.jtl -e -o ..\report\report20200628。
② 运行成功后,会在report目录下生成测试报告。
③ 用浏览器打开index.html,效果如下:
注意:每次执行命令都要先去目录下清空报告和jtl文件。