java - 如何在Jmeter中的两个线程组之间共享JSessionID

标签 java jmeter performance-testing load-testing blazemeter

对于我的 JMeter 测试,我想登录一次,然后使用多线程同时浏览应用程序中的报告。 我创建了两个连续运行的线程组,第一个线程组包含设置为使用一个线程运行的登录 HTTP 请求。第二个线程组包含我的应用程序中每个报告的 HTTP 请求,并且它设置为使用 50 个线程运行。

应用程序部署在 weblogic 服务器上,并且应用程序 session 是有状态的。

我想将登录成功后第一个线程组通过weblogic生成的JsessionID与第二个线程组的HTTP请求共享。

问题是第二个线程组中每个 HTTP 请求的 JsessionID 都是唯一的,并且与第一个线程组中登录 HTTP 请求的 JsessionID 都不同。因此,应用程序无法调用验证调用。

JsessionID 嵌入在 header 内的 cookie 中。我尝试使用正则表达式提取器从第一个线程组中的HTTP请求中提取它(参见附图)并在HTTP Cookie管理器中定义它,但问题仍然存在。 Regular Expression Extractor config

最佳答案

  1. 有一种更简单的方法可以使用 HTTP Cookie Manager 获取 JSESSIONID cookie 值。

    • 将下一行添加到 user.properties 文件

      CookieManager.save.cookies=true
      
    • 重新启动 JMeter 以获取属性
    • 完成后,您将能够在需要时以 ${COOKIE_JSESSIONID} 形式访问 Cookie 值
  2. 为了使其在第二个线程组中可用,您需要使用 __setProperty() function 将其转换为 JMeter 属性。像:

    ${__setProperty(JSESSIONID,${COOKIE_JSESSIONID},)}
    

    完成后,您将能够使用 __P() function 访问第二个线程组中的值为 ${__P(JSESSIONID,)}

关于java - 如何在Jmeter中的两个线程组之间共享JSessionID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52161528/

相关文章:

java - Android 字符编码与 Java 字符编码

testing - 负载测试的性能指标?

java - 在 Spring/Hibernate 环境中手动管理数据库事务

macos - Macos 上的 jmeter 启动 GUI 时卡住

http请求的每个线程的jmeter唯一ID

graph - 如何制作jmeter输出图

performance-testing - 加特林循环中基于条件的退出

testing - LoadRunner 是否支持在响应页面中执行 JavaScript?

java - Java 包是否等同于 .Net 程序集?

java - Spring MVC - 没有在 JSP View 中获得值(value)