繁体   English   中英

邮递员BDD测试对象REST API的数组

[英]Postman BDD testing array of object REST API

我正在使用Postman BDD / Chai编写测试,并且遇到测试数组响应的问题。

所以我的API返回的内容与

[
        {
            "id": 1,
            "firstName": "x",
            "lastName": "y",
            "dateOfBirth": "2018-04-21",
            "username": "user"
        },
        {
            "id": 2,
            "firstName": "x",
            "lastName": "y",
            "dateOfBirth": "2018-04-21",
            "username": "admin"
        } 
]

如何检查回复中是否包含某些成员?

expect(response).to.have.property('id');

由于响应是一个数组,因此似乎没有作用。 将响应更改为response [0]似乎也没有任何改变。

建议?

您可以仅在“ Tests选项卡中添加类似的内容,而无需使用Postman BDD库。 我在这里使用了Lodash,但是您可以使用for loop对本机JS执行相同的操作:

pm.test('Response has the ID property', () => {
    _.each(pm.response.json(), (arrItem) => {
        console.log(arrItem)
        pm.expect(arrItem).to.have.property('id')
    })
})

在此处输入图片说明

您可以扩展它以检查整个对象中是否存在特定元素-例如,在测试中添加另一行,例如pm.expect(arrItem).to.have.property('firstName')

如果您使用的是PostmanBDD库,则可以添加一个for循环来检查id属性:

eval(globals.postmanBDD)

describe('Get id data', () => {
  it('should check the id property is present', () => {
      for(i=0; i < response.body.length; i++) {
          console.log(response.body[i])
          response.body[i].should.have.property('id')
      }
  })
})

邮差

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM