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

1

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

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

[
    {
        "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 равно "Себастьяну", независимо от того, есть ли только один результат или 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');

});
  • 0
    Вы пробовали проверить, является ли возвращаемый JSON объектом JSON или массивом JSON? Если это массив, вам, вероятно, понадобится поместить проверку данных внутри цикла forEach / for.
Теги:
postman
postman-collection-runner

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')
    })
})

Это будет работать на основе набора данных, который вы предоставили.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню