我需要帮助来执行邮递员测试,该测试需要来自另一个测试的响应输出。我已经检查了各种论坛,但是没有针对此特定方案的解决方案。
实施例
测试1回复:
{
"items": [
{
"email": "archer+qa01@gmail.com",
"DocumentName": "tc",
"type": "URL",
"url": "https://localhost:8443/user/terms?statusno=a5f2-eq2wd3ee45rrr"
}
]
}
测试2:
我需要仅使用 来自a5f2-eq2wd3ee45rrr
的响应数据的Test 1
部分,这可以在上面的url
值中看到。我需要在Test 2
我怎样才能与Postman合作?
答案 0 :(得分:4)
不能完全确定问题的响应数据格式是什么,但是如果它是仅具有url
属性的简单对象,则可以使用类似以下的简单内容:
var str = pm.response.json().url
pm.environment.set('value', str.split('=', 2)[1])
然后,它将为一个变量设置所需的值,以便在下一个请求中使用POST请求正文中的{{value}}
语法,或者在其中一个测试中使用pm.environment.get('value')
脚本。
编辑:
如果url
属性在数组中,则可以遍历它们并以这种方式提取值。这将设置变量,但是如果数组中有多个1 url
属性,它将设置找到的最后一个。
_.each(pm.response.json(), (arrItem) => {
pm.environment.set('value', arrItem[0].url.split('=', 2)[1])
})
答案 1 :(得分:0)
如果您收到JSON响应,然后在正文中发送JSON,我将执行以下操作:
1)在测试脚本(javascript)中:
var JsonBody = pm.response.json();
var strToParse = JsonBody.url;
var value = strToParse.slice(indexOf("?status=")+"?status=".length);//parse string
//manually but you can google for a better solutions.
pm.environment.get("varName" , value)
2)您可以使用它!在诸如pm.environment.get("varName")
之类的脚本中,以及在其他任何地方使用{{varName}}