如何从Jmeter响应中提取所需数据并将其作为请求传递

如何从Jmeter响应中提取所需数据并将其作为请求传递,jmeter,Jmeter,我是JMeter的新手。我的答复如下 { "id": "35", "rsd": null, "col": "green", "cc": "B5305F", "pn": "KENWAY TYRES RENEWAL 2014", "loc": "ABD - MR \/ RS \/ RS", "isf": "1", "isl": "0", "tq": "1", "pi": null,

我是JMeter的新手。我的答复如下

{
      "id": "35",
      "rsd": null,
      "col": "green",
      "cc": "B5305F",
      "pn": "KENWAY TYRES RENEWAL 2014",
      "loc": "ABD - MR \/ RS \/ RS",
      "isf": "1",
      "isl": "0",
      "tq": "1",
      "pi": null,
      "st": "1",
      "dsid": "15",
      "cid": "2120",
      "spl": null,
      "wid": "WI\/uo46shpr",
      "inv": null,
      "pdid": "1620",
      "di": "0",
      "pl": "0"
    },
这里我需要检查一下

isf=1
isl=0
st=1
如果是这样,那么我必须获取相应的
id
,并将其作为请求传递

我已经使用正则表达式提取器提取了isf、isl和st值。当我尝试使用
Beanshell后处理器打印值时

log.info("is_final="+vars.get("${is_final}"));

仅传递
null
值。我不明白。帮我做这件事。提前谢谢。

你的Beanshell声明有点古怪。您需要使用
vars.get(“variableName”)
或直接使用
${variableName}
,因此如果您将行更改为:

log.info("is_final="+vars.get("is_final"));

给定
is_final
变量存在且不为null,您将在jmeter.log文件中看到它的值


有关Beanshell脚本的更多信息,请参阅指南

需要以下正则表达式

if isf=1 and isl=0 and st=1 are true 
extract the id values
必须创建以下正则表达式格式才能提取ID值

"id":\s"(.+)",\s{7}.+\s{7}.+\s{7}.+\s{7}.+\s{7}.+\s{7}"isf":\s"1".+\s{7}"isl":\s"0".+\s{7}.+\s{7}.+\s{7}"st":\s"1"


谢谢你提供的信息。我得到的答复如下:{“id”:“140”,“rsd”:“null”,“col”:“绿色”,“cc”:“B5307F”,“pn”:“肯威轮胎更新2014”,“loc”:“ABD-LR\/L3\/L3”,“isf”:“1”,“isl”:“0”,“tq”:“15”,“pi”:null,“st”:“1”,“dsid”:“15”,“cid”:“2120”,“spl”:“null”,“WI\/3ivdfzhg”,“inv”:null,“pdid”:“1103”,“di”:“0”,“pl”:“0”}我需要提取iid的值,其中isf=1,st=1。什么是正则表达式,我必须在正则表达式提取器中使用?请你看看我的新问题,并提供你的建议。这是链接,请提前感谢。
"id":\s"(.+)",\s{7}.+\s{7}.+\s{7}.+\s{7}.+\s{7}.+\s{7}"isf":\s"1".+\s{7}"isl":\s"0".+\s{7}.+\s{7}.+\s{7}"st":\s"1"
\s - means single space
\s{7} - means seven single spaces
.+ - means any string matches
(.+) - means to extract the id values