首页 文章

为每个JMeter HTTP请求添加会话ID

提问于
浏览
3

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

我尝试在HTTP Cookie管理器中(在用户定义的cookie下),在HTTP请求默认值中(在带有请求的发送参数下)附加一个JSessionId参数,我尝试添加一个'HTTP URL重写修饰符'录制控制器下的预处理器选项卡 . 这些都没有奏效 . 哪一步是为我的JMeter测试设置固定会话ID的最佳方法?

2 回答

  • 1

    您需要在HTTP请求中添加jp @ gc-JSON Path Extractor,这是在其响应数据中生成会话ID的特定HTTP请求 . 如果响应如下 - {“sessionId”:“f5b06970-f00f-4b44-89c8-305738e19cba”,“loginDate”:1483599209337}

    在JSON路径提取器中添加1.变量名称 - 会话(将存储会话ID的变量)2.JSON表达式 - $ .sessionId(这将根据json响应进行varry)3 . 默认值 - NOT_FOUND

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

  • 2

    当你试图使用HTTP Cookie Manager时,你是对的,这应该做你需要的 .

    可能由于以下两个原因之一而无效:

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

    或者,更有可能的是, domain 字段中没有使用'http://'?

相关问题