引用: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文件。