В предыдущих статьях о Postman Tutorial мы рассмотрели «Как запускать коллекции с помощью Newman»
В этой статье «Тестовые примеры API в Postman с использованием JavaScript». , я покажу, как можно реализовать эту концепцию и полностью ее контролировать.
С помощью Postman мы можем добавлять сценарии к нашему запросу и писать тесты.
Код, добавленный на вкладке Скрипт предварительного запроса, будет выполнен до отправки запроса, а код, добавленный на вкладке Тесты , будет выполнен после получения ответа.
< p>
Мы используем скрипты предварительного запросадля всех вещей, которые нам нужно сделать перед выполнением запроса, таких как установка переменных, очистка переменных или установка переменной среды в среде.
Мы пишем Тестовые сценарии для проверки обработки ошибок API, отправив запрос с неполными данными. С помощью тестовых сценариев мы можем использовать динамические переменные и выполнять тестовые утверждения для данных ответов.
У Postman есть API PM (известный как pm.*API), который представляет собой мощный способ написания тестов на вкладке «Тест».
pm.test():
Функция pm.test() используется для написания спецификаций тестов. Он принимает 2 параметра: имя теста (в виде строки) и функцию, возвращающую логическое значение. Его можно использовать только на вкладке «Тесты» после отправки основного запроса Postman.
Пример:pm.test("ответ должен быть готов к обработке", function () { pm.response.to.not.be.error; pm.response.to.have.jsonBody("&# 34;); pm.response.to.not.have.jsonBody("error"); });
pm.expect():
< p>Функция утверждения pm.expect() позволяет легко писать читаемые тесты, и мы можем работать с утверждениями данных из ответа или переменных.
Пример:
pm. test("производственная среда", function () { pm.expect(pm.environment.get("env")).to.equal("производство" ;); });
pm.response.to.be.* :
Объект pm.resonse.to.be предоставляет тесты для типов статуса ответа и вариантов тела ответа.
Пример:pm.test("response is ok", function () { pm.response.to.have.status(200); });
Тестовые примеры:
Нам нужно добавить любое утверждение в обратный вызов pm.test.
Пример:
pm.test("Имя вашего теста", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); });1) Код состояния:
1.1 Проверьте, равен ли код состояния 200:
pm.test("Код состояния: 200", function () { pm.response.to.have.status(200); });
1.2 Проверка нескольких кодов состояния:
pm.test("Несколько кодов состояния», function() { pm.expect(pm.response.code).to. be.oneOf([201,202]); });
2) Время ответа:
2.1 Время ответа менее 100 мс:
pm.test(“время ответа”, function() { pm.expect(pm.response.responseTime).to.be.below(9); });
3) Заголовки:
3.1 Заголовок существует:
pm.test(“ заголовок существует», function() { pm.response.to.have.header(Content-Type); });
3.2 Заголовок имеет значение:
pm.test(“Заголовок имеет значение”, function() { pm.expect(pm.response.headers.get('Content-Type')).to.eql ('приложение/json'); });
4) Файлы cookie:
4.1 Файлы cookie существуют:
pm.test(“Файл cookie существует”, function() { pm.expect(pm.cookies.has('sessionId')).to.be.true; });
4.2 Файл cookie имеет значение:
pm.test(“Файл cookie имеет значение”, function() { pm.expect(pm.cookies.get('sessionId') ;)).to.eql('ad3se3ss8sg7sg3'); });
5) Тело (любой тип контента/ответы HTML):
5.1 Точное соответствие тела:
pm.test(“Сопоставить тело”, function() { pm.response.to.have.body("OK"); pm.response.to.have.body('{&# 34;успех"=true}'); });
5.2 Частичное совпадение тела/тело содержит:
pm.test(“Частичное совпадение тела”, function() { pm.expect(pm.response.text()).to .include('Заказ размещен.'); });
6) Текст (ответы в формате JSON):
Разобрать тело (необходимо для всех утверждений)
const response = pm.response.json();
6.1 Простая проверка значения:
pm.test(“ Проверить значение», function() { const response = pm.response.json(); pm.expect(response.age).to.eql(30); pm.expect(response.name).to.eql(&# 39;Джон); });
6.2 Проверка вложенного значения:
pm.test(“Проверить вложенное значение”, function() { const response = pm.response.json(); pm.expect(response. продукты[0].category).to.eql('Book'); });
< strong>7) Тело (ответы в формате XML):
Преобразовать тело XML в JSON (необходимо для всех утверждений):
const response = xml2Json(responseBody);
7.1 Простая проверка значения:
pm.test(“Проверить значение”, function() { const response = xml2Json(responseBody); pm.expect(response .age).to.eql(30); pm.expect(response.name).to.eql('Джон); });
7.2 Проверка вложенного значения:
pm.test(“Проверить значение”, function() { const response = xml2Json(responseBody); pm.expect(response.products.0. категория).to.eql('Книга'); });
Дальнейшие шаги:
Изучите «Создание случайных/динамических данных в запросах» в следующем руководстве.
TAG: qa