在启动Jmeter时,我们会看到这样一句提示:
不要使用GUI模式(界面模式)进行负载测试,GUI模式只能用于创建测试和调试。进行负载测试时,需要时用非GUI模式。
那么为什么进行负载测试时一定要用非GUI模式?大家都知道无非是占用资源的区别,但是直到一次性能测试时,因为并发比较高,每次Jmeter都是很快吃完了所有的系统资源,只能强行shut down;也就是说,使用GUI模式下进行压力测试时,Jmeter吃掉了大量的资源,待测服务器下却没有任何压力条件。
摔!我看你就是在为难我胖达!你这不叫吃资源,你这直接把资源吸进淋逼惹!
后来在*上看到了一个回答,具体解释了jmeter两个模式下的差别:
答案原文如下:
Non-GUI mode consumes a way less resources that GUI mode so I would recommend looking not only into Average Response Time, but also keep in mind other important metrics, for example check delivered load in both scenarios, i.e:
Active Threads Over Time and Transactions per Second listeners output (both are available via JMeter Plugins project
Generate HTML Reporting Dashboard and compare the output for both scenarios
Use 3rd-party analysis solution like JAnalyser or BM.Sense
My expectation is that in GUI mode you have much slower ramp-up hence you can run into the situation when some threads already had already finished their work while others were not yet started. In non-GUI ramp-up is faster so you have more online users so the load delivered to your application under test is much higher.
Try increasing loop count and test duration to see how it goes.
渣翻之:非GUI模式下比GUI模式消耗更少的系统资源,我建议不要只关注平均响应时间,也要关注其他重要的指标,比如说检查测试流程中的每个节点,比如线程的启动时间、每秒钟执行的事务、监听器的输出(Jemter可用的插件、生成的hmtl报告、和第三方的分析工具进行对比,结论是GUI模式下你的ramp-up更慢,因为会出现一些线程已经完成了,但是其他的进程还没有开始的情况;在非GUI模式下,ramp-up会更快,所以你有更多在线的用户,所以访问到待测系统效率更高),可以试试增加循环次数,然后观察在测试期间是怎么运行的。
一.jmeter环境变量配置:
使用GUI的非GUI模式,需要先配置JMETER的环境变量:
计算机-属性-高级系统设置,新增两个变量:
变量名:JMETER_HOME
变量值:Jmeter的安装路径
变量名:CLASSPATH
变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
配置好后可能会出现环境变量无法生效的问题,在cmd输入set path即可。
配置完成后在cmd中输入jemter -v,显示jmeter版本号表示环境变量配置成功。
二.常见的Jmeter命令:
(图片转自https://www.cnblogs.com/fengpingfan/p/5586711.html)
常见命令:
jmeter -n -t 预约.jmx -l result.jtl -e -o output
-e -o output,指的是在out文件下生成html报告
运行效果如下:
进入out文件夹,就能看到我们生成的html报告了: