对于我的JMeter测试,我希望测试中的所有线程都使用一个共享会话ID。在开始测试作业之前,会话ID已知。如何为JMeter测试指定特定的JSessionId?
我尝试在HTTP Cookie管理器中(在用户定义的cookie下)在HTTP请求默认值中添加一个JSessionId参数(在请求的发送参数下),我尝试添加'HTTP URL重写修饰符'从录制控制器下的预处理器选项卡。这些都没有奏效。哪一步是为我的JMeter测试设置固定会话ID的最佳方法?
答案 0 :(得分: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}
答案 1 :(得分:1)
当你尝试使用HTTP Cookie Manager时,你是对的,这应该做你需要的。
可能由于以下两个原因之一而无效:
您要么将Cookie管理器放在错误的位置。要影响所有请求,它应该位于测试计划或线程组的根目录。
或者,更有可能的是,在添加用户定义Cookie时,未正确指定所有必需值。开始工作可能很棘手;你确定你没有在domain
字段中使用'http://'吗?