Как проверить в почтальоне независимо от количества результатов, если результат возвращается

Как проверить в почтальоне независимо от количества результатов, что все данные в ответе возвращают идентификатор, имя, фамилию и т. д.

Вот как выглядит ответ:

[
    {
        "id": 1,
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "[email protected]"
    },
    {
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "[email protected]",
        "id": 4
    },
    {
        "id": 5,
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "[email protected]"
    },
    {
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "[email protected]",
        "id": 8
    },
    {
        "id": 9,
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "[email protected]"
    },
    {
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "[email protected]",
        "id": 12
    }
]

Я хочу проверить две вещи:

1) Ответ возвращает id, first_name, last_name, email

2) Все first_name равны "Sebastian" независимо от того, есть только один результат или 100

Это то, что я пробовал, однако, это работает только для одного результата:

const jsonData = pm.response.json();

pm.test('Has data', function() {
  pm.expect(jsonData).to.have.property('first_name');
  pm.expect(jsonData).to.have.property('last_name');
  pm.expect(jsonData).to.have.property('email');
  pm.expect(jsonData).to.have.property('id');

});

person Poonam    schedule 26.10.2018    source источник
comment
Вы пытались проверить, является ли возвращенный JSON объект JSON или массив JSON? Если это массив, вам, вероятно, потребуется поместить проверку данных внутри цикла forEach/for.   -  person Jim Factor    schedule 26.10.2018


Ответы (1)


Вы можете попробовать это:

pm.test("Has data",() => {
    _.each(pm.response.json(), (item) => {
      pm.expect(item.first_name).to.eql("Sebastian")
      pm.expect(item).to.have.property('first_name')
      pm.expect(item).to.have.property('last_name')
      pm.expect(item).to.have.property('email')
      pm.expect(item).to.have.property('id')
    })
})

Это будет работать на основе предоставленного вами набора данных.

person Danny Dainton    schedule 26.10.2018