我想在json响应中提取ProductIdentifier
的值,如下所示:
Reference Name: ProductToken
Regular Expression: "ProductIdentifier":" (.+?)"
Template $1$
Match No. 1
然后ProductToken
引用将用于请求的有效负载(json)以进行验证。
有一些教程和视频可以描述如何替换参考名称,如下所示: jmeter-video-tutorial-error-checking-and-dynamic
目前,请求中的引用名称${ProductToken}
未替换为其值(取自先前的响应),它被识别为引用名称的纯文本。
{"order":{"Token":null,"ProductIdentifier":"${ProductToken}","OrderToken":null,"Products": ...
请求中有超过30个变量,每次替换时,将它们作为参数而不是在Body Data中直接替换是浪费时间。
我无法在HTTP请求的正文数据中使用此引用名称。任何建议将不胜感激。
感谢。
答案 0 :(得分:0)
目前处理JSON响应的最舒适方式似乎是jmeter的自定义JSON utils(JSON Path Assertion,JSON Path Extractor,JSON Formatter),它们也是JMeter Plugins的一部分,应该可以工作与Blazemeter一起很好。
使用JSON Path而不是Regular Expression Extractor可以帮助您避免因json格式问题导致的处理错误。
如果ProductIdentifier
外观在回复中是唯一的,则在这种特殊情况下,下列内容应该可以正常工作:
{
"order":{
"Token":null,
"ProductIdentifier":"c1e8e382-771e-4fee-b7c2-0a24afe798df",
"OrderToken":null,
"Products":[
"one",
"two",
"three"
]
}
}
. . . HTTP Request jp@gc - JSON Path Extractor Name: productToken JSON path: $.order.ProductIdentifier HTTP Request Body Data: { "order":{ "Token":null, "ProductIdentifier":"${productToken}", "OrderToken":null, "Products":[ "one", "two", "three" ] } } . . .