如何在JMeter中用提取器获取hidden类型input的CRAFT_CSRF_TOKEN值
提取CRAFT_CSRF_TOKEN的可行方案
提取失败前置排查
- 先确认响应内容是否存在HTML实体转义:部分服务端返回内容中
"会被转义为",标签属性顺序也可能和示例不同,写死属性顺序的提取规则会匹配失败 - 确认响应未被加密/压缩:如果返回的是gzip压缩后的内容,需要先解压再做提取操作
各提取方式的正确配置
正则表达式提取器(适配任意属性顺序)
正则表达式填写:<input\s+(?:[^>]*?\s+)?name="CRAFT_CSRF_TOKEN"(?:\s+[^>]*?)?\s+value="([^"]+)"
- 提取分组取第1个匹配组,即可直接拿到value值
- 若存在引号转义,将正则中的
"替换为",提取后再做HTML实体解码即可
XPath提取器
XPath表达式填写://input[@type="hidden" and @name="CRAFT_CSRF_TOKEN"]/@value
- 如果提取的响应是非标准HTML格式,需要开启Tidy解析开关再执行提取
CSS选择器提取器
选择器规则填写:input[type='hidden'][name='CRAFT_CSRF_TOKEN']
- 提取属性指定为
value,取第一个匹配结果即可
后续传参使用
提取得到的token值存入变量后,在后续请求的对应参数位直接引用变量即可,无需额外处理。
内容的提问来源于stack exchange,提问作者pragneshReddy Nandyala
相关产品推荐
相关产品推荐

