Здесь я выкладываю список ключевых методов Chai, используемых в Postman для написания тестов через pm.expect
. Примеры показывают, как проверять ответы API.
Chai.js это библиотека JavaScript, которая использует подход BDD(Behavior-Driven Development). Главный принцип BDD - Сценарии описываются на естественном языке, чтобы их понимали все участники проекта, включая разработчиков, тестировщиков и представителей бизнеса.
1. to.equal
Описание: Проверяет, равно ли значение ожидаемому (строгое равенство ===).
Пример кода
pm.test("Проверка статус-кода", () => {
pm.expect(pm.response.code).to.equal(200); // Проверяет, что статус-код равен 200
});
pm.test("Проверка значения в ответе", () => {
const response = pm.response.json();
pm.expect(response.id).to.equal(1); // Проверяет, что id равен 1
});
2. to.be
Описание: Используется для проверки типов или простых условий (например, an
, undefined
, true
).
Пример кода
pm.test("Проверка типа ответа", () => {
const response = pm.response.json();
pm.expect(response).to.be.an("object"); // Проверяет, что ответ — объект
});
pm.test("Проверка на undefined", () => {
const response = pm.response.json();
pm.expect(response.error).to.be.undefined; // Проверяет, что поле error отсутствует
});
3. to.have
Описание: Используется для проверки наличия свойств или значений (например, property
, status
).
Пример кода
pm.test("Проверка наличия свойства", () => {
const response = pm.response.json();
pm.expect(response).to.have.property("id"); // Проверяет, есть ли свойство id
});
pm.test("Проверка статус-кода через have", () => {
pm.expect(pm.response).to.have.status(200); // Проверяет, что статус-код равен 200
});
4. to.include
Описание: Проверяет, содержит ли строка, массив или объект определённое значение.
Пример кода
pm.test("Проверка строки", () => {
pm.expect(pm.response.text()).to.include("success"); // Проверяет, есть ли слово "success" в теле ответа
});
pm.test("Проверка массива", () => {
const response = pm.response.json();
pm.expect(response.items).to.include(42); // Проверяет, есть ли 42 в массиве items
});
5. to.be.oneOf
Описание: Проверяет, входит ли значение в список допустимых значений.
Пример кода
pm.test("Проверка допустимого значения", () => {
const response = pm.response.json();
pm.expect(response.status).to.be.oneOf(["success", "pending", "failed"]); // Проверяет, что status — одно из значений
});
6. to.be.above / to.be.below
Описание: Проверяет, больше ли (above
) или меньше ли (below
) значение заданного порога.
Пример кода
pm.test("Проверка времени ответа", () => {
pm.expect(pm.response.responseTime).to.be.below(1000); // Проверяет, что время ответа меньше 1000 мс
});
pm.test("Проверка значения", () => {
const response = pm.response.json();
pm.expect(response.count).to.be.above(0); // Проверяет, что count больше 0
});
7. to.be.at.least / to.be.at.most
Описание: Проверяет, больше или равно (at.least
) или меньше или равно (at.most
) значение заданного порога.
Пример кода
pm.test("Проверка минимального значения", () => {
const response = pm.response.json();
pm.expect(response.items.length).to.be.at.least(1); // Проверяет, что длина массива >= 1
});
pm.test("Проверка максимального значения", () => {
pm.expect(pm.response.responseTime).to.be.at.most(500); // Проверяет, что время ответа <= 500 мс
});
8. to.match
Описание: Проверяет, соответствует ли строка регулярному выражению.
Пример кода
pm.test("Проверка формата email", () => {
const response = pm.response.json();
pm.expect(response.email).to.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/); // Проверяет формат email
});
pm.test("Проверка URL", () => {
pm.expect(pm.response.url).to.match(/^https:/); // Проверяет, что URL начинается с https
});
9. to.have.lengthOf
Описание: Проверяет длину строки, массива или объекта.
Пример кода
pm.test("Проверка длины массива", () => {
const response = pm.response.json();
pm.expect(response.items).to.have.lengthOf(3); // Проверяет, что в массиве items ровно 3 элемента
});
pm.test("Проверка длины строки", () => {
const response = pm.response.json();
pm.expect(response.message).to.have.lengthOf(7); // Проверяет, что длина строки message равна 7
});
10. to.be.empty
Описание: Проверяет, является ли строка, массив или объект пустым.
Пример кода
pm.test("Проверка пустого массива", () => {
const response = pm.response.json();
pm.expect(response.errors).to.be.empty; // Проверяет, что массив errors пустой
});
pm.test("Проверка пустой строки", () => {
const response = pm.response.json();
pm.expect(response.comment).to.be.empty; // Проверяет, что строка comment пустая
});
11. to.be.ok / to.be.true / to.be.false
Описание: Проверяет логические значения: ok
— истина, true
— строго true, false
— строго false.
Пример кода
pm.test("Проверка успешности", () => {
const response = pm.response.json();
pm.expect(response.success).to.be.ok; // Проверяет, что success — истина (true, ненулевое число, непустая строка и т.д.)
});
pm.test("Проверка значения true", () => {
const response = pm.response.json();
pm.expect(response.isActive).to.be.true; // Проверяет, что isActive строго true
});
pm.test("Проверка значения false", () => {
const response = pm.response.json();
pm.expect(response.hasErrors).to.be.false; // Проверяет, что hasErrors строго false
});
12. to.be.null
Описание: Проверяет, является ли значение null
.
Пример кода
pm.test("Проверка на null", () => {
const response = pm.response.json();
pm.expect(response.error).to.be.null; // Проверяет, что error равно null
});
Дополнительные ресурсы
Для полного списка методов Chai обратитесь к официальной документации:
Документация Chai (BDD)Подробнее о тестах в Postman:
Документация Postman по тестам