Создание тестов в Postman
Тесты в Postman позволяют убедиться, что API работает так, как этого от него ожидают.
Давайте начнем с написания простого теста.
Шаг 1: Возвращаемся к GET-запросу, который мы создали ранее и переключаемся во вкладку Tests (Тесты). В секции сниппетов нажимаем на сниппет «Status code: Code is 200». В окне теста появится скрипт. Этот скрипт будет проверять, что запрос возвращает код ответа 200.
Шаг 2: Нажмите кнопку Send (Отправить). В нижней части окна вы увидите результат выполнения теста (в нашем случае он выполнился успешно).
Шаг 3: Давайте добавим еще один тест. В этот тесте мы будем сравнивать полученный результат с ожидаемым. Чтобы это сделать, выбираем сниппет с названием «Response body:JSON value check». Давайте проверим, что пользователь с именем Leanne Graham имеет userid 1.
Шаг 4: Заменим название теста на что-то более понятное: вместо «Your test name» напишем «Check if Leanne Graham has the userid 1». Также заменим на (т.к. jsonData представляет собой массив, а массивы начинаются с 0):
Код теста будет выглядеть следующим образом:
pm.test("Check if user with id1 is Leanne Graham", function () { var jsonData = pm.response.json(); pm.expect(jsonData.name).to.eql("Leanne Graham"); });
Шаг 5: Нажимаем Send (Отправить)
Особенности Postman
Ниже мы перечислим только некоторые из особенностей Postman:
- Простой в использовании API клиент
- Функциональный и приятный UI.
- Может использоваться как для ручного, так и для автоматизированного тестирования API.
- Поддерживает интеграции с другими инструментами (например, поддерживает Swagger и RAML)
- Может быть запущен в Windows, Linux, MacOS.
- Не требует знания языков программирования.
- Предоставляет возможность легко экспортировать коллекции запросов, наборы тестов. Можно легко обмениваться этими данными с коллегами.
- Интегрируется с CI/CD инструментами (например, с Jenkins, TeamCity и т.п.)
- API Posman-a подробно документирован.
- Позволяет выполнять API автотесты.
Больше информации о Postman можно найти на официальном сайте: https://www.getpostman.com/
Postman — freemium-интсрумент. Но бесплатной версии более, чем достаточно, чтобы проводить базовое тестирование API.
Установка Postman
Рассмотрим установку на Windows нативного приложения, поскольку Chrome-расширение уже не обновляется, разработчики Postman настоятельно рекомендуют ставить standalone-версию.
- Идем по линку и скачиваем версию для Windows.
Рекомендуется ставить 64-битную версию.
- Открываем exe-файл:
Постман ставится, ждем:
- После завершения установки будет предложено создать экаунт. Можно нажать «Потом». Но рекомендуется сделать это сразу, чтобы сохранить свои первые тесты.
- После входа в экаунт настраиваем и сохраняем.
Postman откроется:
После того, как Postman установлен, можно переходить к тестированию API.
Postman отличный инструмент для тестирования API для тех, кто не хочет или не может писать тесты вручную (в IDE на языке программирования, используемом для разработки приложения).
Настройка и прошивка
Подключение платы
Плата подключается к компьютеру по USB, на ней должны замигать светодиоды. Если этого не произошло:
- Неисправен USB кабель
- Неисправен USB порт компьютера
- Неисправен USB порт Arduino
- Попробуйте другой компьютер, чтобы исключить часть проблем из списка
- Попробуйте другую плату (желательно новую), чтобы исключить часть проблем из списка
- На плате Arduino сгорел входной диод по линии USB из-за короткого замыкания, устроенного пользователем при сборке схемы
- Плата Arduino сгорела полностью из-за неправильного подключения пользователем внешнего питания или короткого замыкания
Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:
- См. предыдущий список неисправностей
- Кабель должен быть data-кабелем, а не “зарядным”
- Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб
- Не установлены драйверы Arduino (во время установки IDE или из папки с программой), вернитесь к установке.
В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, обычно COM3. Если этого не произошло:
- См. предыдущий список неисправностей
- Некорректно установлен драйвер на USB контроллер Arduino
- Переверните плату и найдите “узкую” микросхему. Если на ней написано CH341 – ставим драйвер по инструкции выше
- Если написано FT232R – опять же инструкция выше
- Если ничего не написано – открываем “Диспетчер устройств”, смотрим блок “Другие устройства”. Если при подключении платы к компьютеру там появляется FT232R USB UART – смотрим инструкцию выше
- Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
- Возникла системная ошибка, обратитесь к знакомому компьютерщику или экзорцисту
Выбор и настройка платы (Arduino NANO)
- Выбираем соответствующую плату в Инструменты\Плата\
В микроконтроллер китайских плат зашит “старый” загрузчик, поэтому выбираем Инструменты\Процессор\ATmega328p (Old Bootloader). Если вам по какой-то причине пришлют платы с новым загрузчиком – прошивка не загрузится (будет минутная загрузка и ошибка), можно попробовать сменить пункт Процессор на ATmega328p
Большинство моих проектов сделаны на Arduino Nano. Если вы используете Nano:
- Теперь выбираем порт, к которому подключена плата. COM1 – в большинстве случаев системный порт, у вас должен появиться ещё один (обычно COM3)
Загрузка прошивки
“Загрузка” прошивки происходит в два этапа – компиляция и непосредственно загрузка в микроконтроллер. Компиляция – проверка кода на наличие ошибок, её можно запустить, нажав кнопку с символом галочки в верхнем меню программы. Компилировать код можно даже не подключая плату к компьютеру! При нажатии на кнопку с символом стрелочки начнётся компиляция, а затем загрузка скомпилированного кода в плату.
Вставьте следующий код с полной заменой содержимого в IDE и загрузите его. Должен начать мигать светодиод на плате, это означает что все программы настроены верно и можно переходить к работе!
Параметризация запросов
Параметризация — одна из самых полезных особенностей Postman.
Часто необходимо выполнить один и тот же запрос на разных наборах данных. С помощью параметризации, можно использовать переменные при выполнении запросов.
В Postman, параметры создаются с помощью двойных скобок: `test`.
Например, наш base URL — https://testengineer.ru и мы сохраняем это значение в переменной с именем base_url. В этом случае, мы можем обратиться к этой переменной из запроса, написав `base_url`. Для того, чтобы отправить запрос на этот URL, мы подставим эту переменную в запрос. Выглядеть это будет так: `base_url`/get?customers=new. Запрос будет отправлен на https://testengineer.ru/get?customers=new
Шаг 1: Меняем тип HTTP-запроса на GET и вводим URL:
Шаг 2: Меняем URL на параметр `url`. После этого URL запроса должен быть таким: `url`/users
Шаг 3: Теперь нам нужно создать переменную окружения, чтобы использовать ее в качестве параметра. Для этого нажимаем на кнопку с глазом и кликаем на Edit (редактировать), чтобы создать глобальную переменную и затем использовать ее в коллекциях.
Шаг 4: В окне создания переменной задаем имя (именем будет url) и значение (значением будет https://jsonplaceholder.typicode.com). После этого нажимаем Save (Сохранить)
Шаг 5: Возвращаемся к GET-запросу и нажимаем Send (отправить)
Если все сделано правильно, значение переменной, которую мы создали, будет подставлено вместо ее имени и запрос выполнится успешно.
Тестирование POST-запросов
POST-запросы используются для отправки новых данных на сервер. Давайте попробуем с помощью POST-запроса добавить нового пользователя. Для этого мы отправим информацию о новом пользователе в теле POST-запроса.
- Задаем тип запроса — POST
- Задаем request URL — https://jsonplaceholder.typicode.com/users
- Нажимаем на вкладку Body, выбираем «Raw» — JSON. Вставляем данные о пользователе из сниппета ниже:
{ "id": 11, "name": "Rajkumar SM", "username": "stm", "email": "user@testengineer.ru", "address": { "street": "Gagarina", "suite": "31", "city": "Moscow", "zipcode": "600007", "geo": { "lat": "10.0000", "lng": "80.0000" } }, "phone": "1-2345-6-7890", "website": "testengineer.ru", "company": { "name": "testengineer.ru", "catchPhrase": "website for QA engineers", "bs": "real-time tutorials" } }
После этого наживаем кнопку SEND и отправляем POST-запрос.
Примечание: для проверки корректности вашего json можно использовать Jsonformatter
- Вы увидите 201 Created message (как на скриншоте ниже), если запрос выполнился успешно.
- Данные, отправленные с помощью POST-запроса будут показаны во вкладке Body
Точно так же, как и POST, отправляются PUT, PATCH и DELETE запросы.
Примечание: во время тестирования, для каждого запроса проверяйте возвращаемый результат, код ответа сервера и время ответа сервера. И не забывайте про негативные тесты!
Установка библиотек
Библиотека – несколько файлов с кодом, облегчающим работу с датчиками и другими модулями. К моим проектам библиотеки идут в архиве (об этом ниже). Рассмотрим все способы загрузки и установки библиотек.
Менеджер библиотек
Большинство Ардуино-библиотек можно установить автоматически из встроенного в программу менеджера библиотек:
- Скетч/Подключить библиотеку/Управлять библиотеками…
- Комбинация клавиш Ctrl+Shift+I
Нужную библиотеку можно найти в поиске по названию и нажать Установка, библиотека будет автоматически установлена в папку с библиотеками. Arduino IDE проверяет обновления библиотек при запуске и предложит обновиться, если найдёт обновления.
Скачивание с GitHub
Не все существующие библиотеки есть в менеджере библиотек и скачать их можно только с GitHub. Есть два способа: скачать весь репозиторий и скачать релиз. Весь репозиторий со всеми “лишними” служебными файлами можно скачать одним архивом вот так, нажав Code/Download ZIP
Если у библиотеки есть релизы – справа будет отмечен последний (свежий) релиз. Нажимаем на него:
И в новом окне нажимаем Source code (zip) – начнётся загрузка архива. Скачивание релиза более предпочтительно, так как содержит только файлы библиотеки.
В обоих случаях библиотека скачается как .zip архив.
Автоматическая установка
Скачанный .zip архив можно установить в автоматическом режиме через Скетч/Подключить библиотеку/Добавить .ZIP библиотеку… В открывшемся окне выбрать скачанный архив, библиотека будет установлена по указанному в настройках пути.
Ручная установка
Для начала нужно распаковать архив (стандартный архиватор Windows или WinRAR). Чтобы Arduino IDE смогла использовать библиотеку, нам нужно положить её туда, где программа будет её искать. Таких мест три (на примере Windows):
- Документы/Arduino/libraries/
-
Папка с программой/libraries/
- C/Program Files/Arduino/libraries/ (Windows 32)
- C/Program Files (x86)/Arduino/libraries/ (Windows 64)
- В портативной версии IDE желательно держать библиотеки в Папка с программой/libraries
Рекомендуется держать все библиотеки в одном месте, чтобы не было путаницы. Лично я устанавливаю все библиотеки в папку с программой (в Program Files), но для этого могут потребоваться права администратора (зависит от версии и настроек Windows). Если у вас возникли с этим проблемы – устанавливайте в Документы/Arduino/libraries/. На скриншотах показана установка скачанной с GitHub библиотеки в папку с программой и в документы. Ставить нужно в одно место, я просто показываю оба варианта.
Зачем использовать Postman?
Сегодня Postman — супер-популярный инструмент. Им пользуются более 8 миллионов разработчиков и тестировщиков. И вот почему:
- Бесплатный. Postman — бесплатный инструмент.
- Простой в использовании. Очень просто начать пользоваться — Postman интуитивно понятный. Уже через несколько минут после скачивания и установки вы сможете отправить ваш первый запрос.
- Поддерживает разные API. С помощью Postman можно выполнять разные типы запросов к любым API (REST, SOAP, GraphQL (по тестированию GraphQL c помощью Postman у нас есть отдельная статья)
- Расширяемый. Postman можно настроить под ваши конкретные нужды с помощью Postman API.
- Интегрируемый. Можно легко интегрировать наборы тестов в ваш любимый CI/CD инструмент с помощью Newman (CLI collection runner — позволяет запускать Postman-коллекции в командной строке)
- Имеет большое комьюнити. Postman очень популярный и, как следствие, имеет большое комьюнити, которое подскажет ответы на большинство вопросов.
Основные сущности Postman: запросы, коллекции и окружения
Перед тем, как приступить непосредственно к тестированию, давайте рассмотрим основные сущности, которыми оперирует Postman:
- Запросы
- Коллекции
- Окружения
1. Запросы (Requests)
Запрос представляет собой комбинацию URL, хедеров и Body (тела запроса). Postman позволяет сохранять запросы и использовать их в будущем там, где вам нужно.
Чтобы создать новый запрос, нажмите New — Request
Как мы писали выше, Postman позволяет делать запросы к API. С помощью API-запроса можно получать и отправлять данные какому-либо бэкенд-сервису.
Для каждого API-запроса нужно выбрать HTTP-method.
Что такое HTTP?
HTTP — сокращение от HyperText Transfer Protocol (протокол передачи гипертекста). Протокол используется для общения клиента и сервера. Клиентом, к примеру, может быть браузер (в нашей статье в качестве клиента используется Postman).
После отправки клиентом HTTP-запроса, сервер возвращает ответ. Ответ сервера содержит метаданные о статусе и запрашиваемый контент.
Наиболее распространенные типы HTTP-запросов:
- GET: GET-запросы используются для получения данных от API.
- POST: POST-запросы используются для отправки новых данных API.
- PUT: PUT-запросы используются для обновления уже существующих данных.
- PATCH: PATCH-запросы (как и PUT) используются для обновления уже существующих данных. Разница в том, что с помощью PATCH запросов можно обновить несколько записей за раз.
- DELTE: DELETE-запросы используются для удаления существующих данных.
Далее в статье мы рассмотрим, как создавать и отправлять запросы разных типов с помощью Postman.
2. Коллекции (Collections)
Коллекции представляют собой группы запросов. Вы можете думать о коллекциях как о папках, в которых лежат запросы.
Как создать коллекцию в Postman:
Нажмите New — Collection
Введите имя (Name) и описание (Description) коллекции, после этого нажмите кнопку Create:
Коллекция может содержать любое число запросов. Запустить выполнение коллекции можно двумя способами:
- с помощью Collection Runner
- c помощью Newman
Далее мы рассмотрим оба этих способа.
3. Окружение (Environments)
Окружения в Postman позволяют запускать запросы и коллекции, используя разные наборы данных. Например, мы можем создавать разные окружения в Postman для Dev, QA и Production серверов. В каждом из окружений будут свои собственные настройки: например, URL, auth token-ы и пароли, API-ключи и т.п. Окружения представляют собой наборы пар «ключ-значение».
Чтобы создать новое окружение (Environment), нажмите New — Environment
Мы рассмотрим работу с окружениями далее в статье.