我正在使用JMeter创建一个小测试。到目前为止,我有一个执行HTTP请求的线程组,等待10秒,然后执行其他HTTP请求并检查返回的内容。如果我从JMeter GUI启动100个这样的线程并且延迟时间为1秒,它可以正常工作,我得到预期的值,整个测试在22秒内完成。但是,当我从命令行启动相同的jmx文件时,测试运行超过120秒,并且一些线程(在最后一次运行时,100个中的36个)没有获得预期值。这可能表明我测试的系统中存在一个错误,但我不明白为什么测试需要花费很长时间才能从CLI中获取错误,以及为什么我从CLI获得错误。从GUI运行测试和从CLI运行测试有什么区别? CLI是否运行测试"更平行"?顺便说一下,这是我使用的命令行:
/home/nar/apache-jmeter-3.3/bin/jmeter -n -t test_transactions.jmx -l test_transactions.out
我担心我无法分享测试计划,但我可以分享"大纲":
+ Thread Group
+ CSV Data Set Config
+ HTTP Request
| + JSON Extractor
+ Constant timer
+ HTTP Request
| + JSON Extractor
| + Response Assertion
+ View Results Tree
+ Save Responses to a file
+ View Results in Table
+ Summary Report
Constant计时器等待10秒钟。第一个HTTP请求发送一些数据并启动计算,第二个HTTP请求检查结果。
答案 0 :(得分:0)
我认为你应该在非gui测试中禁用以下监听器:
禁用后,您仍然可以使用-l test_transactions.out
获得结果,稍后您可以使用GUI模式使用监听器中的“浏览”按钮查看
在非GUI中,如果您想添加-e -o /path/dashboardfolder
答案 1 :(得分:-1)
实际上确实表明了被测系统中的错误。原因是你作为GUI must run JMeter in non-GUI mode会在资源消耗方面产生巨大的开销,特别是当你使用Listeners时,尤其是当其中一个是View Results Tree时。
所以我的期望是,在非GUI模式下,您基本上会创建更多的巨大负载,而您的应用程序无法处理。您可以使用Active Threads Over Time和Transactions Per Second听众来检查这一点。