2017-12-27 563 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 我還添加了調試採樣器來調試提取的值。但它沒有提取價值。但是,如果我給你的表達靜態名稱和調試,那麼它工作正常。但是,當我使用變量名不是。 –