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

#javascript #testing #automated-tests #postman #qa

#javascript #тестирование #автоматизированные тесты #postman

Вопрос:

Ниже приводится тело ответа API:

 [
{
    "exercise_num": "1",
    "expire_date": "2019-03-11T16:31:17.935Z",
    "created_at": "2019-03-15T11:44:35.698Z"
},
{
    "exercise_num": "2",
    "expire_date": "2019-03-11T16:31:17.935Z",
    "created_at": "2019-03-15T11:44:38.363Z"
}
]
  

В тестах Postman как проверить, является ли узел exercise_num в теле ответа выше уникальным?

Ответ №1:

Отфильтруйте уникальные exercise_num значения и сравните длину фактического массива и массива уникальных значений. Где вы можете использовать Array#reduce метод для фильтрации уникальных значений.

 pm.test("Your test name", function() {
  var jsonData = pm.response.json();
  pm.expect(jsonData.reduce(function(arr, b) {
    if (!arr.includes(b.exercise_num)) {
      arr.push(b.exercise_num);
    }
    return arr;
  }, []).length).to.eql(jsonData.length);
});
  

Комментарии:

1. Привет, Пранав! Ценю ваш быстрый ответ. Я попробовал приведенный выше код, и postman выдает следующую ошибку: «TypeError: не удается прочитать свойство ‘reduce’ из undefined»

2. @NoorYeaserKhan: Я только что обновил, пожалуйста, проверьте сейчас

3. Огромное спасибо Пранаву. Теперь это работает отлично. Большое вам спасибо!