我正在使用jmeter工具在AWS环境中运行性能测试。我们有一个启用了自动扩展的集群,并具有memcache会话故障转移jar。我们正在使用jmeter主从,所以我们没有从JTL文件中获取响应数据。测试持续时间为45分钟后返回响应代码:
响应代码:403响应消息:禁止
如何解决这个问题?
在研究了更多后,我发现原因可能是memcache的会话故障转移jar我将jar版本升级到1.6.5但仍面临同样的问题。
看起来你正在使用ELB。 ELB附加了CNAME。 AWS会更改附加到CNAME的IP。这经常发生。
测试开始时,JMeter会对ELB CNAME执行DNS查找。然后缓存响应。从此时起,测试会将流量发送到现在缓存的响应中的IP地址。
结果是,在某些时候(在IP更改之后),您正在测试现在可以属于不同服务器或属于NO服务器的旧IP。这可能就是你获得403的原因。
要解决此问题,您需要将Cache TTL设置为0(零)。这将指示JMeter不缓存DNS查找响应并始终再次执行(这在任何情况下都更加真实)。您应该将以下内容添加到JMeter行:-Dsun.net.inetaddr.ttl = 0。
更多信息:http://community.blazemeter.com/knowledgebase/articles/94060-testing-amazon-elbs