Session 向每个JMeter HTTP请求添加会话ID

Session 向每个JMeter HTTP请求添加会话ID,session,jmeter,Session,Jmeter,对于JMeter测试,我希望测试中的所有线程都使用一个共享会话id。在启动测试作业之前,会话id是已知的。如何为JMeter测试指定特定的JSessionId 我已经尝试在HTTP Cookie管理器(在用户定义的Cookie下)、HTTP请求默认值(在请求的发送参数下)中添加JSessionId参数,并且尝试从录制控制器下的预处理器选项卡添加“HTTP URL重写修饰符”。这些都不起作用。哪一步是为我的JMeter测试设置固定会话id的最佳方法?您在尝试使用时是正确的,这应该可以满足您的需要

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


我已经尝试在HTTP Cookie管理器(在用户定义的Cookie下)、HTTP请求默认值(在请求的发送参数下)中添加JSessionId参数,并且尝试从录制控制器下的预处理器选项卡添加“HTTP URL重写修饰符”。这些都不起作用。哪一步是为我的JMeter测试设置固定会话id的最佳方法?

您在尝试使用时是正确的,这应该可以满足您的需要

可能是因为以下两个原因之一:

你要么把Cookie管理器放错地方了。要影响所有请求,它应该位于测试计划或线程组的根目录下


或者,更可能的情况是,在添加用户定义的Cookie时没有正确指定所有必需的值。这可能是棘手的工作;您是否确保没有在
字段中使用“http://”

您需要添加
jp@gc-JSON路径提取器
在HTTP请求中,在其响应数据中生成会话id的特定HTTP请求。 如果回答如下:

{"sessionId":"f5b06970-f00f-4b44-89c8-305738e19cba","loginDate":1483599209337} 
在JSON路径提取器中添加:

  • 变量名称-会话(存储会话id的变量)
  • JSON表达式-
    $.sessionId
    (这将根据JSON响应而有所不同)
  • 默认值-
    未找到

  • 现在,下一步是使用这个名为“session”的变量。您可以在HTTP请求中使用它,您需要将会话id作为
    x-auth-token=${session}

    传递到HTTP头管理器下。海报从未提到响应中会返回sessionId,特别是JSON,另一个答案更有意义。