从postman中的响应中检索字符串时评估测试脚本时出错

时间:2017-06-28 12:24:13

标签: parameters postman

从下面的响应结构中我想检索id字段并将其保存在邮递员的环境变量中。

我尝试了所有可行的方法,但无法这样做。

{
    "childMaxAge": 13,
    "selectedForBooking": [
        {
            "id": "0661be61-d0ae-411009-a96d-64229a",
            "firstName": "Test",
            "gender": {
                "code": "MALE",
                "name": "Male"
            }
   ]
}

我已尝试过以下内容,但也无效。

tests["Status code is 201"] = responseCode.code === 201;
var data = JSON.parse(responseBody);
console.log(data);
var custid=JSON.parse(data.selectedForBooking[0].id);
tests ["selectedForBooking"]= postman.setEnvironmentVariable("CustId1", custid);

但它给出了错误:

评估测试脚本时出错:JSONError:1:2处的意外标记'6'0661be61-d0ae-411009-a96d-64229a ^

3 个答案:

答案 0 :(得分:0)

无需第二次解析响应数据。 如果您不打算断言任何内容,也无需使用tests[]

tests["Status code is 201"] = responseCode.code === 201;
var data = JSON.parse(responseBody);
console.log(data);
var custid=data.selectedForBooking[0].id;
postman.setEnvironmentVariable("CustId1", custid);

var custid=JSON.parse(data.selectedForBooking[0].id);试图从0661be61-d0ae-411009-a96d-64229a中创建一个不是json格式字符串的json对象。

答案 1 :(得分:0)

查看POSTMAN : parsing a JSON response, how deep can I go into the response?

我曾经有类似的问题,我试图达到

body.entries[0].attributes.device.type

我设法通过

获得了价值
body.entries[0].attributes['device.type']

确保使用单引号(我不知道为什么......)

希望这有帮助

亚历山大

答案 2 :(得分:-1)

您的JSON数据本身是错误的,这就是为什么它显示该错误。

必须为:

{
    "childMaxAge": 13,
    "selectedForBooking": [
        {
            "id": "0661be61-d0ae-411009-a96d-64229a",
            "firstName": "Test",
            "gender": {
                "code": "MALE",
                "name": "Male"
            }
        }
   ]
}

现在您可以尝试

var custid=data.selectedForBooking[0].id;

它将返回所需的值