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

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

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

[
    {
        "id": 1,
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "sebastian@codingthesmartway.com"
    },
    {
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "sebastian@codingthesmartway.com",
        "id": 4
    },
    {
        "id": 5,
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "sebastian@codingthesmartway.com"
    },
    {
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "sebastian@codingthesmartway.com",
        "id": 8
    },
    {
        "id": 9,
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "sebastian@codingthesmartway.com"
    },
    {
        "first_name": "Sebastian",
        "last_name": "Eschweiler",
        "email": "sebastian@codingthesmartway.com",
        "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');

});

Вы пробовали проверить, является ли возвращенный JSON объектом JSON или массивом JSON? Если это массив, вам, вероятно, потребуется выполнить проверку данных внутри цикла forEach / for.

Jim Factor 26.10.2018 11:27
2
1
118
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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')
    })
})

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

Другие вопросы по теме