JMeter中提取PageSessionID请求参数应使用哪种提取器?
针对你需要提取动态PageSessionId的需求,优先选择和响应格式匹配的专用提取器,兼容性场景下可使用正则表达式提取器,具体配置方法如下:
1. 优先方案:匹配响应格式的专用提取器
场景1:响应为JSON格式
如果PageSessionId在接口返回的JSON结构中,选择JSON JMESPath提取器:
- 右键点击返回PageSessionId的前置请求,依次选择「添加」→「后置处理器」→「JSON JMESPath提取器」
- 核心配置项:
- 「引用名称」:填写后续调用的自定义变量名,比如
page_session_id,后续请求中使用${page_session_id}即可引用提取到的值 - 「JMESPath表达式」:根据实际响应层级填写,比如响应结构为
{"data":{"PageSessionId":"xxx"}},则填写data.PageSessionId - 「匹配数字」:单值提取填
1即可,代表取第一个匹配结果 - 「默认值」:可填写
NOT_FOUND,方便后续排查提取失败的问题
- 「引用名称」:填写后续调用的自定义变量名,比如
场景2:响应为HTML页面
如果PageSessionId存放在HTML的隐藏域或标签属性中,选择CSS选择器提取器:
- 右键点击返回PageSessionId的前置请求,依次选择「添加」→「后置处理器」→「CSS选择器提取器」
- 核心配置项:
- 「引用名称」:填写自定义变量名,比如
page_session_id - 「CSS选择器表达式」:根据标签结构填写,比如PageSessionId存放在
<input type="hidden" name="PageSessionId" value="xxx">中,则填写input[name=PageSessionId] - 「属性名称」:填写要提取的标签属性名,上述场景填
value - 「匹配数字」:填
1即可 - 「默认值」:填写
NOT_FOUND方便排查
- 「引用名称」:填写自定义变量名,比如
2. 通用兼容方案:正则表达式提取器
如果返回格式无固定结构,可使用正则表达式提取器适配所有场景:
- 右键点击返回PageSessionId的前置请求,依次选择「添加」→「后置处理器」→「正则表达式提取器」
- 核心配置项:
- 「应用范围」:默认选择「主样本」即可
- 「要检查的响应字段」:根据PageSessionId的实际存储位置选择,绝大多数场景选「响应体」
- 「引用名称」:填写自定义变量名,比如
page_session_id - 「正则表达式」:根据PageSessionId的前后边界填写,比如JSON格式下可填
"PageSessionId":"(.+?)",(.+?)为需要提取的动态值部分 - 「模板」:填写
$1$,代表取第一个括号匹配的内容 - 「匹配数字」:填
1即可 - 「默认值」:填写
NOT_FOUND方便排查
3. 提取结果验证
添加「调试取样器」到线程组中,运行测试后在「查看结果树」中查看page_session_id变量的取值,确认提取正常后即可替换后续请求中对应的PageSessionId参数。
内容的提问来源于stack exchange,提问作者dreampopgaze
相关产品推荐
相关产品推荐

