JMeter测试与CLI的工作方式不同于GUI - 为什么?

时间:2018-01-09 09:34:25

标签: jmeter

我正在使用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请求检查结果。

2 个答案:

答案 0 :(得分:0)

我认为你应该在非gui测试中禁用以下监听器:

  • 查看结果树
  • 将回复保存到文件
  • 查看表格中的结果
  • 摘要报告

禁用后,您仍然可以使用-l test_transactions.out获得结果,稍后您可以使用GUI模式使用监听器中的“浏览”按钮查看

在非GUI中,如果您想添加-e -o /path/dashboardfolder

,还可以生成dashboard report

答案 1 :(得分:-1)

实际上确实表明了被测系统中的错误。原因是你作为GUI must run JMeter in non-GUI mode会在资源消耗方面产生巨大的开销,特别是当你使用Listeners时,尤其是当其中一个是View Results Tree时。

所以我的期望是,在非GUI模式下,您基本上会创建更多的巨大负载,而您的应用程序无法处理。您可以使用Active Threads Over TimeTransactions Per Second听众来检查这一点。