在服务器上托管应用程序的理想 Jmeter 测试环境应该是什么?

What should be an ideal Jmeter Testing Enviornment with an application hosted on a server?

提问人:shivam 提问时间:9/15/2023 更新时间:9/15/2023 访问量:34

问:

1.我们有一个 Open Finn 应用程序托管在美国服务器上。 2.我们使用 Jmeter 来获取不同模块的性能,例如登录注销时间。 3.在记录和运行包含所有嵌入式元素的jmter测试计划时,我们得到的时间类似于手动性能结果。 4.但是,当我们在托管应用程序的服务器上破坏相同的测试计划时,结果太快了,并且与我们在服务器上获得的手动性能数据不同。

现在很难判断哪些数据是正确的,哪些是不正确的。 - 上述方法是否正确,以及如何使结果与服务器和本地计算机上的手动性能同步。

本地计算机结果服务器数据

当我们手动运行应用程序并注意本地计算机和服务器上的计时时序时,它们几乎相似。

但是在运行 JMeter 时,结果差异很大。

期望在本地计算机和服务器上获得相同的手动和 JMeter 数据。

我已经应用了所有标头管理器、缓存管理器和动态正则表达式,使其更接近真实的客户端模拟。

JMerter -性能测试 客户端 jmeter-5.0

评论


答:

0赞 Yugal 9/15/2023 #1

想象一下,您正在从本地计算机加载数据。在这种情况下,您实际上是在广阔的互联网上发送请求,遍历办公室或家庭网络的复杂网络。这个旅程涉及许多“跳跃”或中间点,然后才最终到达预定的目的地——服务器。

现在,请考虑另一种方案,即从应用程序所在的环境中发送请求。这种方法使您更接近服务器,从而大大缩短了请求需要覆盖的距离。当然,邻近度最终取决于端点的性质,即它是网络拓扑中的内部节点还是外部节点。这种区别至关重要,因为它决定了处理您的请求的效率和速度。

干杯!

评论

0赞 shivam 9/15/2023
嘿 Yugal, 但是在服务器或本地机器上执行的测试计划应该在哪里执行,因为客户端可能不使用托管应用程序的同一台服务器,手动性能在服务器上和本地机器上的时间没有太大差异,但 jmeter 差异很大。
0赞 Yugal 9/15/2023
为了进行有效的负载测试,必须在托管服务器的环境中执行该测试。负载测试的主要目标是评估服务器处理增加的负载和流量的能力。在这种情况下,客户端指标成为次要指标,不是评估的重点。核心目标是确定您的服务器是否能够有效地扩展和响应不同级别的负载,从而确保其在苛刻条件下的可靠性和性能。
0赞 shivam 9/15/2023
嘿,Yug,从负载测试的角度来看,你是对的,但我也想获得每个 http 请求的性能并获取每个模块的运行时间,以了解我的每个模块花费了多少时间,并且在此参数上希望通过分析请求来缩短运行时间
0赞 Dmitri T 9/15/2023 #2

让我用简单的话来重新表述一下:

  1. 您从您所在的位置运行了 JMeter 测试,并得到结果 1
  2. 您在您所在的位置使用浏览器运行了手动测试,并得到了结果 2
  3. 您将结果 1 与结果 2 进行了比较,结果相似
  4. 您从靠近被测系统的位置运行了 JMeter 测试,并得到了结果 3
  5. 现在你要问为什么结果 3 与结果 1 和 2 不同。您不应该从靠近被测系统的位置运行“手动测试”吗?

此外,仅研究响应时间并不能说明全部情况,请考虑分析连接时间和延迟

一般来说,对于查找应用程序缺陷,负载生成器位于何处以及请求到达服务器和响应需要多长时间才能通过网络返回并不重要,这个时间或多或少是相同的,您可以通过从经过的时间中减去延迟来获得它。

服务器处理时间是您正在寻找的,在特定阈值之后,它将随着负载的增加而增加。

如果应用程序所有者希望应用程序在亚洲或澳大利亚快速响应,他应该考虑将实例部署在更靠近最终用户的位置,并根据用户 IP 地址将流量路由到这个或那个实例。

有关指标、指标的含义以及如何分析指标的更多信息:

评论

0赞 shivam 9/15/2023
嘿,德米特里,感谢您的回复,我理解您想说什么,但我也在服务器上运行了手动运行,并注意到性能和服务器上手动运行的性能与手动本地系统性能相似。但是 JMeter 的性能确实比在服务器上手动运行要快
0赞 shivam 9/15/2023
对于大多数请求,服务器上的延迟为零,但在本地计算机上,延迟更大,服务器和本地系统上的手动执行时间几乎相同,但服务器上的 jmeter 结果与服务器上的手动结果相差甚远