在邮递员 BDD 语法中访问 json

accessing json in postman BDD syntax

我正在尝试用 BDD 语法编写测试(GET 请求),如 https://www.npmjs.com/package/postman-bdd

json 响应可以如下所示,可以使用 console.log(response.body);

在邮递员中显示
{
    "Id1": {
        "a": 84,
        "b": 74,
        "c": 7,
        "d": 3,
        "e": 91
    },
    "Id2": {
        "a": 25,
        "b": 51,
        "c": 93,
        "d": 97,
        "e": 1
    }
}

请告诉我如何访问 BDD 语法中 Id1 和 Id2 的 a、b、c 等键的值。

我尝试了 console.log(response.body.Id1);console.log(response.body.Id1.a),但都不起作用。

您需要在测试中使用 eval() 语句引用 postmanBDD 模块。这需要保存为邮递员全局变量才能工作。

eval(globals.postmanBDD)

var jsonData = pm.response.json()

describe('Get Ids', () => {

  it('should return the correct Id', () => {
    expect(jsonData.Id1.a).to.equal(84)
  })
})

这是从 JSON 个对象中提取数据的 basic example

作为替代方案,您现在可以在最新的 Postman 应用程序中执行相同的操作,而无需引入外部 PostmanBDD 模块:

pm.test('Get Id value', () => {
    var jsonData = pm.response.json()
    pm.expect(jsonData.Id1.a).to.equal(84)
})

此测试代码的作用与第一个解决方案相同。