JMETER 4. 0 | JMeter分布式负载测试| jp @ gc-步进线程组| 504网关超时|非HTTP响应代码|断言失败

时间:2019-02-13 05:24:39

标签: jmeter performance-testing load-testing jmeter-4.0 distributed-testing

考虑登录用户的场景->导航至页面01->将用户保留5分钟->退出用户

脚本编写如下:

  • 导航到主页
  • 用户已登录(通过仪表板上的某些文本验证登录的断言)
  • 显示仪表板
  • 导航到第01页(断言第01页的内容)
  • 注销(添加了5分钟的恒定计时器,并声明了注销以验证主页是否已重定向)

Step Up线程配置已通过以下方式保留:

Stepping Thread Group thread/ramp-up configuration

为实现此方案,分布式系统的实现方式如下:

  • Master(我自己的机器8 GB Ram和Core 2 Duo处理器)
  • 2个从属机器(每个8 GB Ram,以及I7和Core 2 Duo处理器)

  • 线程:jp @ gc-步进线程组

服务器的配置如下:

  • 2个EC2实例(每个16 GB Ram)
  • 1个负载均衡器
  • 1个RDS实例

注意:实例会自动按60%的CPU使用率进行缩放。

在非GUI模式下使用步进线程为500个并发用户执行脚本时,以下错误列表显示在仪表板报告中

  • 504 /网关超时
  • 非HTTP响应代码:java.net.SocketException /非HTTP响应消息:连接重置
  • 断言退出失败

有人可以帮我知道为什么会出现这些吗? 当我检查Load Balancer 504 / Gateway Time-out是否未出现在那儿吗?我试图跟踪这些错误,但无法弄清为什么这些错误以及其他两个错误都出现了。当对10个用户执行相同的脚本时,GUI模式下不会出现错误。

对于 100-250个并发用户执行相同的脚本时,如果没有上述错误,效果很好

1 个答案:

答案 0 :(得分:0)

如果问题不是针对250个虚拟用户发生,而是针对500个虚拟用户发生-绝对是bottleneck由负载增加引起的,则只需找出原因。

  1. 请确保已将DNS Cache Manager添加到测试计划中,否则可能会导致负载仅流向一台服务器
  2. 设置对EC2实例的监视,以确保它们有足够的空间来操作CPU,RAM,网络等。为此,您可以使用Amazon CloudWatchJMeter PerfMon Plugin
  3. 您可能希望在启用profiling tool遥测的情况下重新运行测试-这样一来,您将可以看到应用程序在哪里花费了大部分时间
  4. 检查应用服务器,数据库等的配置,因为它可能是configuration issue of the middleware
  5. 请注意according to JMeter Best Practices you should always be using the latest JMeter version,因此请考虑尽快迁移到JMeter 5.0(或JMeter Downloads页上可用的最新版本)。