我正在使用JMeter,响应的内容是这样的,每个响应一个。
<input name="_formkey" type="hidden" value="65aace0b-fa79-4b99-bf20-22c6ef2b043c" />
必须将_formkey的值传递给下一个请求。我为此使用了正则表达式提取器 -
input name="_formkey" type="hidden" value="(.+?)"
这会产生很多变量
formkey=bec48a21-3955-493e-93c2-97a1f0bf64cf
formkey_g=1
formkey_g0=input name="_formkey" type="hidden" value="bec48a21-3955-493e-93c2-97a1f0bf64cf"
formkey_g1=bec48a21-3955-493e-93c2-97a1f0bf64cf
我使用formkey传递值,它工作正常。但是如何避免生成其他3个变量?我的正则表达不是“完美的”,就像没有完美的工作一样吗?
答案 0 :(得分:3)
你的正则表达形式完美。您将获得组的数量和组本身作为其他变量。 formkey_g0
是匹配的整个字符串,formkey_g1
是括号内匹配的部分。请参阅JMeter页面上的the examles。引用相关部分以达到完整性:
例如,假设:
- 参考名称:MYREF
- 正则表达式:name =“(。+?)”value =“(。+?)”
- 模板:$ 1 $$ 2 $
将设置以下变量:
- MYREF:file.namereadme.txt
- MYREF_g0:name =“file.name”value =“readme.txt”
- MYREF_g1:file.name
- MYREF_g2:readme.txt
稍后可以在JMeter测试计划中引用这些变量, 如$ {MYREF},$ {MYREF_g1}等
请注意,MYREF_g0
始终是正则表达式的完全匹配,这与在Java和其他编程语言中使用正则表达式一致。