Jmeter 为会话中的不同调用传递了不同的JSessionID

Jmeter 为会话中的不同调用传递了不同的JSessionID,jmeter,jsessionid,Jmeter,Jsessionid,在Jmeter中,我有一个带有20个http采样器的线程组,添加了http Cookie管理器,会话是通过JSESSIONID处理的 当我为超过10个线程的多个用户运行脚本时,前几个线程运行正常,之后其他线程的一些HTTP采样器失败,并出现错误(在网页上):“您的会话已注销。请关闭当前窗口并再次尝试登录应用程序。” 当我进行进一步分析时,在同一个线程中,不同的JSessionID在两个线程之间传递 请查看不同的会话id是如何在相同线程中为采样器传递的,并为此提供解决方案 注意:当我为最少数量的用

在Jmeter中,我有一个带有20个http采样器的线程组,添加了http Cookie管理器,会话是通过JSESSIONID处理的

当我为超过10个线程的多个用户运行脚本时,前几个线程运行正常,之后其他线程的一些HTTP采样器失败,并出现错误(在网页上):“您的会话已注销。请关闭当前窗口并再次尝试登录应用程序。”

当我进行进一步分析时,在同一个线程中,不同的JSessionID在两个线程之间传递

请查看不同的会话id是如何在相同线程中为采样器传递的,并为此提供解决方案

注意:当我为最少数量的用户(如2个)运行此操作时,我不会遇到此问题

有两个选项可用

  • 如果您使用URL重定向并返回主URL,则可能会得到不同的jsessionid及其地址,这取决于您的服务器配置,您需要使用适当的正则表达式来提取会话并在下一次调用中绑定
  • 如果您对不同的线程使用相同的凭据,并且如果您的服务器配置没有管理它的能力,那么您可能会获得不同的jsessionid

  • 检查SessionID更改的确切位置。然后检查以前请求的响应。可能有一个代码为200的响应,这意味着没有问题,但操作有错误,响应将页面重定向到主URL。