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");
});