在使用Jmeter进行性能测试时,我的Web应用程序出现了一些问题。我的问题不在于Jmeter,而是围绕一个简单的Servlet会话管理行为。
因此,我们有一个Web应用程序,当您请求登录页面时,它会在响应标头中传回“会话ID”,并用于浏览器发出的后续请求。会话ID与用户名和密码一起传递,如果经过身份验证,则会返回新的会话ID,并且会话将继续保持该会话ID。 这是使用cookie。
现在,在Jmeter中,我们有一种基于线程的负载测试方法。当我并行运行线程时,本质上发生的是每个线程请求一个登录页面,并且不知何故只有最后一个请求登录页面的线程被认证,因为我觉得随后的登录页面在cookie中带有一个新的会话ID,使旧的或者无效其他会议ID。
这是因为每个线程都是一个不同的会话并拥有自己的cookie管理器。这很奇怪。
但我的问题是:
将会话ID与登录页面一起使用是否有意义;我看到可能会在访问应用程序时创建会话,但是,是什么设置了具有会话ID的新cookie?这个应用程序已经写好,所以我只是想知道。
如果在jmeter中正在覆盖每个线程的会话ID,那是否意味着我无法正确分配单独的cookie管理器?即使线程是不同的会话也有可能,旧会话ID或cookie将被丢弃?
服务器如何知道为后续请求使会话ID / cookie无效?我确定,不是请求者的IP地址的基础,因为不同的浏览器仍然允许我打开并行多个会话。
非常感谢任何有关该问题的想法,澄清和解释。
答案 0 :(得分:0)
服务器只会暂停会话,这肯定听起来就像你在这里写cookie一样。
您是否尝试通过在网址中包含会话ID来查看其管理方式(模拟在浏览器中禁用的Cookie)这是否有效?
答案 1 :(得分:0)
这根本解决了吗? 我会说在登录页面中有一个会话ID是很不寻常的。会话用于存储数据服务器端并将该数据与连接的用户相关联。当然,在对用户进行身份验证之前,不应该有任何数据服务器端。