В предыдущих статьях Postman Tutorial мы рассмотрели «Как запускать коллекции с помощью Newman».
В этой статье «Тестовые примеры API в Postman с использованием JavaScript» я буду демонстрируя, как вы можете реализовать эту концепцию и получить четкое представление об этом.
С помощью Postman мы можем добавлять сценарии к нашему запросу и писать тесты.
Код, добавленный в Pre- вкладка “Сценарий запроса” будет выполняться перед отправкой запроса, а код будет добавлен на вкладке Тесты .будет выполняться после получения ответа.
Мы используем скрипты предварительного запроса для всех действий, которые необходимо выполнить перед выполнением запроса, таких как установка переменных, очистка переменных или устанавливаем переменную среды в среде.
Мы пишем тестовые скриптыпроверить обработку ошибок API, отправив запрос с неполными данными. С помощью тестовых сценариев мы можем использовать динамические переменные и выполнять тестовые утверждения для данных ответов.
Postman имеет API PM (известный как pm.*API), который является мощным способом написания тестов на вкладке “Тест”.
pm.test():
Функция pm.test() используется для написания тестовых спецификаций. Он принимает 2 параметра: имя теста (в виде строки) и функцию для возврата логического значения. Его можно использовать только на вкладке “Тесты” после отправки основного запроса Postman.
Пример:
12345 | pm.test(“ответ должен быть в порядке для обработки”, function () {pm.response.to.not.be .error;pm.response.to.have.jsonBody(“”);pm.response.to.not.have.jsonBody(“error”);}); |
pm.expect ():
Функция утверждения pm.expect() упрощает написание удобочитаемых тестов, и мы можем иметь дело с утверждениями данных из ответа или переменных.
Пример:
123 | pm.test(“рабочая среда”, function () {pm. ожидаем(pm.environment.get(“env”)).to.equal(“production”);}); |
pm.response.to.be.* :
Объект pm.resonse.to.be предоставляет тесты для типов статуса ответа и вариантов текста.
Пример:
123 | pm.test(“ответ в порядке”, function () {pm.response.to.have.status(200);}); |
Тестовые случаи:< /h3>
Нам нужно добавить любое из утверждений в обратный вызов pm.test.
Пример:
1234 | pm.test(“Имя вашего теста”, function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100);}); |
1) Код состояния:
1.1 Убедитесь, что код состояния равен 200:
123 | pm.test(“Код состояния 200 “, function () {pm.response.to.have.status(200);}); |
1.2 Проверка нескольких кодов состояния:
123 | pm.test(“Несколько кодов состояния”, function() {pm.expect(pm.response.code).to.be.oneOf([201,202]);}); |
2) Время ответа:
2.1 Время отклика менее 100 мс:
123 | pm.test(“время ответа”, function() {pm.expect(pm.response.responseTime).to.be.below(9);}); |
3) Заголовки:
3.1 Существует заголовок:
123 | pm. test(“заголовок существует”, function() {pm.response.to.have.header(Content-Type);}); |
3.2 Заголовок имеет значение:
123 | pm.test(“заголовок имеет значение”, function() {pm.expect(pm.response.headers.get('Content-Type')).to .eql('приложение/json');}); |
< strong>4) Cookies:
4.1 Cookie существует:
123 | pm.test(“Cookie существует”, function() {pm.expect(pm.cookies.has('sessionId')).to.be.true;}); |
4.2 Значение файла cookie:
< textarea wrap=soft class="crayon-plain print-no" data-settings=dblclick только для чтения стиль=-moz-tab-size:4;-o-tab-size:4;-webkit-tab-size:4;tab -size:4;размер шрифта:12px!важно;высота строки:15px!важно>pm.test(“Файл cookie имеет значение”, function() { pm.expect(pm.cookies.get('sessionId')).to.eql('ad3se3ss8sg7sg3'); });< /textarea>
123 | pm.test(“Cookie имеет значение», function() {pm.expect(pm.cookies.get('sessionId')).to.eql('ad3se3ss8sg7sg3');}); |
< strong>5) Тело (любой тип контента/HTML-ответы):
5.1 Точное соответствие тела:
1234 | pm.test(“Match body”, function() {pm.response.to.have.body(“ОК”);pm.response.to.have.body('{“success”=true}');}); |
5.2 Частичное соответствие тела/тело содержит:
123 | pm.test(“Частичное совпадение тела” », function() {pm.expect(pm.response.text()).to.include('Заказ размещен.');}); |
6) Тело (ответы JSON):
Синтаксический анализ тела (необходимо для всех утверждений)
const response = pm.response.json();
6.1 Простая проверка значения:
12345 | pm.test(“Проверить значение”, function() {const response = pm.response.json();pm.expect(response.age).to.eql(30);pm. expect(response.name).to.eql('John);}); |
6.2 Проверка вложенных значений:
1234 | pm.test(“Проверить вложенное значение”, function() {const response = pm.response.json();pm.expect(response.products[0].category).to.eql('Book');}) ; |
< /p>
7) Тело (ответы XML):
Преобразование тела XML в JSON (необходимо для всех утверждений):
const response = xml2Json(responseBody);
7.1 Простая проверка значения:
12345 | pm.test(“Проверить значение”, function() {const response = xml2Json(responseBody);pm.expect(response.age).to.eql(30);pm.expect(response.name).to.eql( 'John);}); |
7.2 Проверка вложенных значений:
1234 | pm. test(“Проверить значение”, function() {const response = xml2Json(responseBody);pm.expect(response.products.0.category).to.eql('Book');}); |
Не xt:
Узнайте «Создание случайных/динамических данных в запросах» в следующем руководстве.
TAG: qa