当前位置: 首页 > 知识库问答 >
问题:

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

米飞龙
2023-03-14

我正在使用JMeter创建一个小测试。到目前为止,我有一个线程组执行一个HTTP请求,等待10秒钟,然后执行另一个HTTP请求并检查返回的内容。如果我从JMeter GUI以1秒的爬升周期启动100个这样的线程,它工作得很好,我得到了预期的值,整个测试在22秒内完成。然而,当我从命令行启动同一个jmx文件时,测试运行超过120秒,一些线程(在最后一次运行时,100个线程中有36个)没有得到预期的值。这可能表明我测试的系统中有一个bug,但我不明白为什么测试从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

恒定计时器等待10秒。第一个HTTP请求发送一些数据并启动计算,第二个HTTP请求检查结果。

共有2个答案

潘学民
2023-03-14

它实际上表明了被测试系统中的错误。原因是,您必须在非GUI模式下运行JMeter,因为GUI会在资源消耗方面产生巨大的开销,尤其是在使用侦听器时,尤其是在其中一个是View Results Tree的情况下。

所以我的期望是,在非GUI模式下,基本上会产生应用程序无法处理的更大负载。您可以使用活动线程和每秒事务侦听器来检查这一点。

许振海
2023-03-14

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

  • 查看结果树
  • 将响应保存到文件
  • 在表中查看结果
  • 总结报告

在非GUI中,如果需要,还可以通过添加-e-o/path/dashboardfolder

 类似资料:
  • 我尝试为一个简单的spring引导控制器创建第一个测试,但得到的是。在浏览器中,代码是工作的,但测试失败。我的应用程序使用spring-安全。请帮助我解决问题,并理解我的错误。谢谢你。 这是控制器: 这是个考验。 这是结果日志: mockHttpServletRequest:HTTP方法=GET请求URI=/get_all_items参数={}Headers={accept=[text/html]

  • 我正在使用 LWJGL(适用于 Java 的开放GL)库进行纹理映射。以下是从文件中读取图像的代码: 以字节数组形式获取数据栅格(图像像素)的代码: 现在,创建“bytePixels”数组并将其放入字节缓冲区的代码: 这里用于将所有这些绑定到缓冲区: 问题是,图像纹理的颜色与原始图像颜色不同! 原始图片: 纹理图像: 这个答案OpenGL渲染纹理与原始图像颜色不同?,不能解决这个问题,因为在lwj

  • “Microsft Visual Studio Web性能和负载测试”和“JMeter”的响应时间不同。“JMeter”总是显示更高的响应时间。 我找不到关于这个问题的具体原因,是“Microsft Visual Studio Web性能和负载测试”还是“JMeter”的故障? “Microsft Visual Studio Web性能和负载测试”响应时间与浏览器响应时间类似。 例如,加载到“go

  • db-config-test.xml Maven插件: StackError:

  • 本文向大家介绍Sqoop工作原理是什么?相关面试题,主要包含被问及Sqoop工作原理是什么?时的应答技巧和注意事项,需要的朋友参考一下 hadoop生态圈上的数据传输工具。 可以将关系型数据库的数据导入非结构化的hdfs、hive或者bbase中,也可以将hdfs中的数据导出到关系型数据库或者文本文件中。 使用的是mr程序来执行任务,使用jdbc和关系型数据库进行交互。 import原理:通过指定

  • 所以我试图写一个程序,循环通过三角形的三个边的所有可能的边长组合,并打印遵循勾股定理的那些(即,侧A(sqr)侧B(sqr)=斜边(sqr))。匹配的,它应该打印。然而,数学没有按照它应该的方式执行。我认为问题在于我如何设置我的循环。 那么我的问题是,我应该如何设置?因为我觉得for循环的执行方式如下: 最外层的循环将检查毕达哥拉斯条件是否满足。如果是,它将打印结果、递增并再次测试。当条件不满足时