Runscope: удобный тул для тестирования API

4295c197432a44479754850c97b5db79.jpgBack-end не всегда функционирует так идеально, как указано в API-спецификации. Например, кто-нибудь забывает внести обязательный параметр в JSON-строку выдачи или вместо »0» решает вписать null. Если такие данные проникают в мобильное приложение, последствия могут быть самые неприятные.Сегодня я расскажу об инструменте, который используется для выявления таких случаев. Это Runscope.da4d2e43b16f4a75a754f9517db432e7.pngКак это работает? Runscope — сервис для автоматизированного тестирования API. С его помощью можно посылать запросы к серверу и проверять полученные ответы по заранее установленным критериям. Интерфейс Runscope интуитивно понятен, если у вас под рукой есть API-спецификации.1. Создание запроса Поддерживаются: HTTP verb. Все необходимые методы (GET, HEAD, POST, PUT, PATCH, OPTIONS, DELETE) Авторизация логином/паролем и OAuth Изменение Header«ов Querystring-параметры, которые сразу подставляются в URL Обычные параметры, которые отправляются как body 3e0b98bdea04449c9015b1928d599fae.png2. Установка проверок Для проверки ответов сервера используются Assertions (англ. — утверждения). К любой части ответа можно выставить проверку на свой вкус. К примеру, мы запрашиваем баланс пользователя, и нам нужно проверить вот такой ответ: { «balance»:150 } В данной ситуации мы можем выставить следующий Assertion: e276f5000b9d4ddf8a25392ffcdd4068.pngAssertions поддерживают множество сравнений. Вот некоторые из них: 6b612f6f021640dd803be4682804b592.png

3. Использование переменных Если вам нужно использовать одинаковые данные в нескольких запросах подряд, вы можете создать переменные.Переменные можно создать до выполнения теста: 1e1293e3beec4a079942c19f64ca9f12.png

Или во время выполнения теста можно взять часть ответа и использовать её в качестве переменной: 19cafe0abbcb4856a004faebfb3a1e75.png

Созданные переменные появляются на вкладке Request в правом верхнем углу (см п.1 Создание запроса). Для того, чтобы они появились в вашем запросе, нужно просто на них кликнуть.

4. Использование скриптов Скрипты используются далеко не в каждом запросе, но они дают невероятную гибкость тестированию. Скрипты пишутся на JavaScript. Основной инструмент — Chai Assertion Library.Скрипты позволяют:1. Изменять переменные после выполнения запроса2. Выводить любую информацию в лог3. Использовать функции всех сторонних библиотек, которые поддерживает Runscope

Пример скрипта, который используется в реальном тестировании: 7f4bb23282b4491186979b55d0cf99cf.pngvariables.get («token») достает Runscope переменную, которая была создана на вкладке Variables.

В итоге в лог выводится следующая информация: d111cff4ef034d8e8fa333f2a44977ff.png

5. Просмотр ответов После выполнения какого-либо теста Runscope позволяет посмотреть результат каждого запроса.c8075140dfd743a98e5389b19121b0a7.png Важно! Runscope не отображает ответы с размером более 1 мб. Если вы хотите посмотреть картинку с помощью Runscope, то с этим возникнут проблемы.

После создания нескольких запросов мы получаем полноценный тест, который можно запустить большой зеленой кнопкой «Run Now».84eb30fb1a3b45d5827d23ee4e193689.pngЧто еще умеет Runscope? 1. Хорошо писать документацию.2. Запускать тесты по расписанию.3. Автоматически собирать performance-статистику всех тестов. 4. Отсылать уведомления о проведенных тестах на почту.5. Присоединяться к стороннему сервису и пользоваться его дополнительными возможностями. К примеру, автоматически запускать тест после коммита в GitHub.6. Запускать тесты из разных локаций. Runscope предоставляет несколько proxy-серверов, разбросанных по всему миру и проводит тесты с них.7. Запускать тесты удаленно с помощью Trigger URL. По сути надо просто перейти по специальной URL с любого устройства, и тест начнется.8. Сохранять результаты предыдущих тестов, если вы не хотите смотреть их прямо сейчас.Самое главное Ценовой политикой в Runscope определяется только количество пользователей на организацию и количество запросов в месяц. За превышение лимита запросов необходимо отдельно доплачивать (около 0.30 центов за 1000 запросов).Но можно остаться и на бесплатном аккаунте.Итоги Runscope активно развивается и часто выкатывает новые фичи. Сервис предельно простой, и в этой статье описана далеко не вся его функциональность. У нас в Redmadrobot с ним работают не только QA, но также разработчики и бизнес-аналитики. Сейчас мы используем Runscope для тестирования новых и старых API, для просмотра JSON-строк в удобном формате и для сбора логов по разным аккаунтам.Для перехвата выдачи сервера на конкретном устройстве мы используем Charles, но об этом как-нибудь потом.

© Habrahabr.ru