【问题标题】:Add Session ID to each JMeter HTTP request为每个 JMeter HTTP 请求添加 Session ID
【发布时间】:2014-07-10 19:26:19
【问题描述】:

对于我的 JMeter 测试,我希望测试中的所有线程都使用一个共享会话 ID。在我开始测试作业之前,会话 ID 是已知的。如何为我的 JMeter 测试指定特定的 JSessionId?

我尝试在 HTTP Cookie 管理器(在用户定义的 cookie 下)、HTTP 请求默认值(在请求的发送参数下)中附加一个 JSessionId 参数,并尝试添加一个“HTTP URL 重写修饰符” ' 从 Recording Controller 下的 Pre-Processor 选项卡。这些都没有奏效。哪一步是为我的 JMeter 测试设置固定会话 ID 的最佳方法?

【问题讨论】:

    标签: session jmeter


    【解决方案1】:

    当您尝试使用 HTTP Cookie Manager 时是正确的,这应该可以满足您的需要。

    可能由于以下两个原因之一它不起作用:

    您要么将 Cookie 管理器放在错误的位置。要影响所有请求,它应该位于测试计划或线程组的根目录。

    或者,更有可能的是,您在添加用户定义的 Cookie 时没有正确指定所有必需的值。这可能很难开始工作;您确定您没有在 domain 字段中使用“http://”吗?

    【讨论】:

      【解决方案2】:

      您需要在 HTTP 请求中添加 jp@gc-JSON Path Extractor,这是在其响应数据中生成会话 ID 的特定 HTTP 请求。 如果响应是这样的:

      {"sessionId":"f5b06970-f00f-4b44-89c8-305738e19cba","loginDate":1483599209337} 
      

      在 JSON 路径提取器中添加:

      1. 变量名称 - 会话(将存储会话 ID 的变量)
      2. JSON 表达式 - $.sessionId(这将根据 JSON 响应而有所不同)
      3. 默认值 - NOT_FOUND

      现在下一步是使用这个名为“session”的变量。您可以在 HTTP 请求中使用它,您需要在 HTTP 标头管理器下将会话 ID 传递为 x-auth-token = ${session}

      【讨论】:

      • 发帖人从未提到 sessionId 在响应中返回,尤其是 JSON,其他答案更有意义。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多