0

我想提取ProductIdentifierjson 响应中的值,如下所示:

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": ...

request中有30多个变量,每次替换都直接写成参数而不是直接替换到Body Data中比较浪费时间。

我无论如何都找不到在 HTTP 请求的正文数据中使用此参考名称。任何建议将不胜感激。

谢谢。

4

1 回答 1

0

目前,处理 JSON 响应最舒适的方法似乎是为 jmeter 定制JSON工具(JSON 路径断言、JSON 路径提取器、JSON 格式化程序),它们也是JMeter 插件的一部分,应该与 Blazemeter 一起正常工作。

使用 JSON Path 而不是正则表达式提取器可以帮助您避免由于 json 格式问题导致的处理错误。

如果ProductIdentifier外观在响应中是唯一的,那么在这种特殊情况下,以下一个应该可以正常工作:

{
   "order":{
      "Token":null,
      "ProductIdentifier":"c1e8e382-771e-4fee-b7c2-0a24afe798df",
      "OrderToken":null,
      "Products":[
         "one",
         "two",
         "three"
      ]
   }
}
. . .
HTTP 请求
    jp@gc - JSON 路径提取器
    名称:productToken
    JSON 路径:$.order.ProductIdentifier 
HTTP 请求
车身数据:
    {
       “命令”:{
          “令牌”:空,
          "ProductIdentifier":"${productToken}",
          "订单令牌":null,
          “产品”:[
             “一”,
             “二”,
             “三”
          ]
       }
    }
. . .

于 2016-02-22T15:07:40.803 回答