15 тестов для проверок API

Здесь я собрал список тестов для запросов в постман, которые использовал сам. Если есть вопросы задавайте в телеграм-канале

Проверка статус-кода ответа

pm.test("Статус-код 200", () => {
    pm.response.to.have.status(200);
});

Проверка времени отклика

pm.test("Время отклика меньше 300ms", () => {
    pm.expect(pm.response.responseTime).to.be.below(300);
});

Проверка тела ответа на наличие ключей (JSON)

pm.test("Ответ содержит обязательные поля", () => {
    pm.expect(pm.response.json()).to.have.all.keys('id', 'name', 'email');
});

Проверка наличия конкретного значения в ответе

pm.test("Проверка значения поля", () => {
    const jsonData = pm.response.json();
    pm.expect(jsonData.name).to.eql("John Doe");
});

Проверка типа данных в ответе

pm.test("Тип данных правильный", () => {
    pm.expect(pm.response.json().id).to.be.a("number");
});

Проверка заголовков ответа

pm.test("Проверка заголовка Content-Type", () => {
    pm.response.to.have.header("Content-Type", "application/json");
});

Проверка отсутствия ошибок в теле ответа

pm.test("Ошибки отсутствуют", () => {
    const jsonData = pm.response.json();
    pm.expect(jsonData.error).to.be.undefined;
});

Проверка, что в ответе присутствует токен

pm.test("Токен возвращен", () => {
    pm.expect(pm.response.json()).to.have.property('token');
    pm.expect(pm.response.json().token).to.be.a('string');
});

Циклические проверки для массива данных

pm.test("Все элементы массива содержат правильные id", () => {
    const jsonData = pm.response.json();
    jsonData.forEach(item => {
        pm.expect(item.id).to.be.a("number");
    });
});

Тест на редирект (3xx статус)

pm.test("Редирект (3xx)", () => {
    pm.expect(pm.response.code).to.be.oneOf([301, 302, 303, 307, 308]);
});

Проверка пустого тела ответа

pm.test("Ответное тело пустое", () => {
    pm.expect(pm.response.text()).to.eql("");
});

Проверка кэширования

pm.test("Проверка заголовка Cache-Control", () => {
    pm.response.to.have.header("Cache-Control", "no-cache");
});

Проверка создания и редактирования данных

pm.test("Созданный пользователь имеет правильное имя", () => {
    const jsonData = pm.response.json();
    pm.expect(jsonData.name).to.eql("Jane Doe");
});

Проверка изменения статуса ресурса

pm.test("Статус блокировки", () => {
    const jsonData = pm.response.json();
    pm.expect(jsonData.status).to.eql("blocked");
});