Задача. Автоматизация с Postman

cat-astronaut-postman

Окунёмся глубже в мир автотестов. Ранее мы при помощи Postman вручную протестировали API межгалактической службы доставки.

Команда разработки пофиксила обнаруженные баги и выкатила новую версию эндпоинта получения списка доступных доставок.

Функциональные требования

Межгалактический курьер должен иметь возможность:

  • Запрашивать список заказов в статусе CREATED (создано), заказы в других статусах не должны быть возвращены.

Метод Эндпоинт Описание Пример запроса
GET /deliveries Получить информацию обо всех доставках в статусе создано. https://www.tester-today.com/postman-scripts-task/deliveries

Формат ответа

Поле Описание Обязательность
id Уникальный идентификатор +
from.name Имя отправителя +
from.address Адрес отправителя +
to.name Имя получателя +
to.address Адрес получателя +
status Статус доставки +

Пример ответа

[
    {
        "id": 2,
        "from": {
            "name": "Кот-астронавт",
            "address": "Марс, фабрика 1"
        },
        "to": {
            "name": "Инопланетный друг",
            "address": "Район Нептуна"
        },
        "status": "CREATED"
    },
    {
        "id": 3,
        "from": {
            "name": "Станция Пиццерия",
            "address": "рукав Ориона"
        },
        "to": {
            "name": "Брат кота-астронавта",
            "address": "Термосфера Земли, МКС"
        },
        "status": "CREATED"
    }
]

Задача

Автоматизируйте проверку корректности возвращаемых при вызове эндпоинта /deliveries доставок.

В Postman —> Tests напишите скрипт, который будет:

  • проверять значение поля status для каждой доставки
  • возвращать статус теста PASS, если все заказы имеют статус CREATED

Порядок действий:

  1. Получите тело ответа и запишите его в переменную, например, body
    const body = pm.response.json();
  2. Оформите тест
    pm.test("All deliveries should have status CREATED", function () {
        //to be continued...
    });
  3. Полученное тело ответа — это список доставок.
    Вызовите метод forEach на теле ответа в тесте, чтобы пройтись по списку и получить доступ к каждой доставке.
    pm.test("All deliveries should have status CREATED", function () {
        body.forEach(function(delivery) {
    
        });
    });

    Переменная delivery — это следующая доставка в списке.

  4. В скобках метода expect укажите delivery.field_name (field_name — имя поля, см. Формат ответа), а в to.equal — значение, которое должно принимать поле.
    pm.test("All deliveries should have status CREATED", function () {
        body.forEach(function(delivery) {
            pm.expect(delivery.field_name).to.equal("value");
        });
    });

При выполнении запросов указывайте данные своей учётной записи в Заголовке Authorization с типом Basic Auth (см. пример).