2017-12-27 562 views
0

我有2个请求。在一个请求中,我使用了随机文本生成器并生成了一些随机字符串并将其传递给一个变量。之后,创建一个新记录,并创建一个随机名称和唯一ID。我想获取该记录的ID。我如何提取使用JSON提取器。使用JSON提取器从响应中提取值

EG。

Srno名ID 1 xvyhz 1230年至1236年(有的ID) 2中为Abczz 1230年至1236年(有的ID)

我想这是由随机字符串生成函数创建的 '中为Abczz' 的ID并存储在'variablename'变量中。 那么如何使用JSON提取器提取生成的字符串的ID。

+0

请格式化您的问题,以便JSON清晰可见,有效 –

+0

{ “locationApportionments”: [ { “groupLocationId”:空, } ], “米”: [ { “meterId”:“8ea69980-5771-4650- af37-37dff115a9d7" , “meterName”: “xyzio”, },{ “meterId”: “aa2618ec-00a1-4962-93cf-71b142e9bb4c”, “meterName”: “abcio”, } ], “productions”:null, } –

+0

@DmitriT:以上是json响应。在这里米名是用随机字符串函数创建的。记录保存后,将创建meterid。我已经将随机生成的字符串保存在一个变量'meterid'中所以,如何用这个变量'meterid'提取仪表ID –

回答

0

如果您正在寻找meterId属性值,其中meterNameabcio相关JSON Path表达式将是这样的:

$..[?(@.meterName == 'abcio')].meterId 

演示:

JMeter JSONPath Conditional Select

的更多信息:API Testing With JMeter and the JSON Extractor

+0

但是仪表名称是随机生成的,并存储在'metername'变量名中。所以,在批量运行时,我将不得不采取存储在该变量中的生成值。我可以这样吗? $ .. [?(@。meterName =='$ {metername}')]。meterId –

+0

当然,你可以把你的JMeter变量放在那里 –

+0

当使用变量名时,它不会提取id。我使用了 $ .. [?(@。meterName =='$ {metername}')]。meterId 我还添加了调试采样器来调试提取的值。但它没有提取价值。但是,如果我给你的表达静态名称和调试,那么它工作正常。但是,当我使用变量名不是。 –