在使用 Jmeter 进行性能测试时,我的 Web 应用程序出现了一些问题。我的问题不是围绕 Jmeter,而是围绕一个简单的 Servlet 会话管理行为。
因此,我们有一个 Web 应用程序,当您请求登录页面时,它会在响应标头中传回一个“会话 ID”,并用于浏览器发出的后续请求。会话 ID 与用户名和密码一起传递,如果经过身份验证,则返回一个新的会话 ID,并使用该会话 ID 继续保持会话。这是使用cookies。
现在在 Jmeter 中,我们有一个基于线程的负载测试方法。当我并行运行线程时,本质上发生的是每个线程都请求一个登录页面,并且不知何故,只有最后一个请求登录页面的线程经过身份验证,因为我觉得 cookie 中带有新会话 ID 的后续登录页面会使旧的或其他会话 ID。
尽管每个线程都是一个不同的会话并且有自己的 cookie 管理器,但还是会这样做。这很奇怪。
但是我的问题是:
登录页面附带会话 ID 是否有意义?我看到可能会在访问应用程序后立即创建会话,但是,是什么设置了带有会话 ID 的新 cookie?这个应用程序已经写好了,所以我只是想知道。
如果每个线程的会话 ID 在 jmeter 中被覆盖,这是否意味着我无法正确分配单独的 cookie 管理器?此外,即使线程是不同的会话,是否有可能会丢弃旧的会话 ID 或 cookie?
服务器如何知道使后续请求的会话 id/cookie 无效?我敢肯定,不是请求者的 IP 地址,因为不同的浏览器仍然会让我打开并行的多个会话。
任何关于这个问题的想法、澄清和说明都将不胜感激。