在jmeter上运行测试脚本时,在其他服务器中找不到会话

时间:2016-11-10 06:28:13

标签: java session server jmeter performance-testing

我在jmeter上运行测试脚本。我正在测试的系统的设计是多方面的。这意味着,当我使用HTTP服务器登录时,我被重定向到Server1或Server2(随机)。在我录制的测试脚本上,我被重定向到Server2。因此,每当我再次运行此预先录制的测试脚本(具有100个用户/线程)时,只有那些重定向到Server2的请求才会成功处理,并且那些重定向到Server1的请求将返回“未找到用户会话”错误。我该如何解决?

我在HTTP采样器之前的测试计划中有一个HTTP Cache和HTTP Cookie Manager。

1 个答案:

答案 0 :(得分:0)

这似乎是两台服务器的错误配置,因为它们不共享会话数据。通常,服务器共享会话相关信息(如cookie),以便客户端可以从任一服务器获得响应。

我不确定你是否真的可以控制哪个服务器命中(虽然它在录制过程中击中了第二台服务器,因为负载均衡器已经为你选择了那个服务器),它完全是负载均衡器的决定(基于关于所使用的算法,例如最少响应时间,基于客户端IP等)

我建议检查服务器配置是否共享cookie级别数据。另外,建议检查负载均衡器正在使用哪种算法将负载分配到两台服务器上。

如果它们没有引起问题,那么请查看服务器如何发送cookie以及(JMeter)客户端如何重新发送它们(通过HTTP Cookie管理器),即检查JMeter是否按预期发送Cookie由服务器。有时可能会发送部分cookie。

请回答以下问题:

  1. 当使用一个线程时,请求是否始终发送到Server2?
  2. 当请求命中单个线程的server1时请求是否成功?
  3. 您是否正在点击负载均衡器URL(由此决定服务器是否会命中)?还是硬编码了一个服务器地址?