【发布时间】:2019-01-13 01:40:44
【问题描述】:
背景:
我有一个返回如下响应的 API:
{
"status": 1,
"errorCode": null,
"message": null,
"data": [
{
"id": 33,
"snapshotId": 2,
"ceId": 29,
"month": "Feb",
"corpRcvPayAmt": 100000,
"wthRcvPayAmt": -90000
},
{
"id": 31,
"snapshotId": 2,
"ceId": 29,
"month": "Jan",
"corpRcvPayAmt": 0,
"wthRcvPayAmt": 0
}
]
}
data 节点的大小可以从 0 到 12(空到每月 1 个)不等。 data 的唯一常量字段是 "month" 节点。其他字段值正在更改。
目标:
我想做一个PUT 或POST 请求,具体取决于data 中是否已经存在特定月份。
为此,我使用 Regular Expression Extractor 将整个 data 字段捕获到一个变量中,如下所示:
使用上面的示例响应,调用${data} 将给我{"id":33,"snapshotId":2,"ceId":29,"month":"Feb","corpRcvPayAmt":100000.00,"wthRcvPayAmt":-90000.00},{"id":31,"snapshotId":2,"ceId":29,"month":"Jan","corpRcvPayAmt":0.00,"wthRcvPayAmt":0.00}
现在使用这个字段,我只想做一个简单的 if 条件,像这样:如果 ${data} 包含 ${month} 做某事(PUT 请求)。我目前正在尝试这样做:
问题:
条件${__groovy("${data}".contains("Jan"))} 似乎不起作用。
我已经尝试过以下操作:
${__groovy("${month}".contains("Jan"))} 只是为了查看语法是否正确。这工作得很好。
${__groovy("${month}".contains("Jan"))} 打印 ${data}。这也会按预期打印数据。
有了这个,我可以确认以下内容:
${month} 和 ${data} 被提取并正确存储
${__groovy("${data}".contains("Jan"))} 不起作用。
我在这里缺少什么?提前致谢。
【问题讨论】:
标签: jmeter performance-testing load-testing jmeter-3.2 blazemeter