- PVSM.RU - https://www.pvsm.ru -
Back-end не всегда функционирует так идеально, как указано в API-спецификации. Например, кто-нибудь забывает внести обязательный параметр в JSON-строку выдачи или вместо «0» решает вписать null. Если такие данные проникают в мобильное приложение, последствия могут быть самые неприятные.
Сегодня я расскажу об инструменте, который используется для выявления таких случаев. Это Runscope [1].
Runscope — сервис для автоматизированного тестирования API. С его помощью можно посылать запросы к серверу и проверять полученные ответы по заранее установленным критериям. Интерфейс Runscope интуитивно понятен, если у вас под рукой есть API-спецификации.
Поддерживаются:
Для проверки ответов сервера используются Assertions (англ. – утверждения). К любой части ответа можно выставить проверку на свой вкус. К примеру, мы запрашиваем баланс пользователя, и нам нужно проверить вот такой ответ:
{
"balance":150
}
В данной ситуации мы можем выставить следующий Assertion:
Assertions поддерживают множество сравнений. Вот некоторые из них:
Если вам нужно использовать одинаковые данные в нескольких запросах подряд, вы можете создать переменные.
Переменные можно создать до выполнения теста:
Или во время выполнения теста можно взять часть ответа и использовать её в качестве переменной:
Созданные переменные появляются на вкладке Request в правом верхнем углу (см п.1 Создание запроса). Для того, чтобы они появились в вашем запросе, нужно просто на них кликнуть.
Скрипты используются далеко не в каждом запросе, но они дают невероятную гибкость тестированию. Скрипты пишутся на JavaScript. Основной инструмент — Chai Assertion Library [2].
Скрипты позволяют:
1. Изменять переменные после выполнения запроса
2. Выводить любую информацию в лог
3. Использовать функции всех сторонних библиотек [3], которые поддерживает Runscope
Пример скрипта, который используется в реальном тестировании:
variables.get(“token”) достает Runscope переменную, которая была создана на вкладке Variables.
В итоге в лог выводится следующая информация:
После выполнения какого-либо теста Runscope позволяет посмотреть результат каждого запроса.
Важно!
Runscope не отображает ответы с размером более 1мб. Если вы хотите посмотреть картинку с помощью Runscope, то с этим возникнут проблемы.
После создания нескольких запросов мы получаем полноценный тест, который можно запустить большой зеленой кнопкой “Run Now”.
1. Хорошо писать документацию [4].
2. Запускать тесты по расписанию.
3. Автоматически собирать performance-статистику всех тестов.
4. Отсылать уведомления о проведенных тестах на почту.
5. Присоединяться к стороннему сервису и пользоваться его дополнительными возможностями. К примеру, автоматически запускать тест после коммита в GitHub.
6. Запускать тесты из разных локаций. Runscope предоставляет несколько proxy-серверов, разбросанных по всему миру и проводит тесты с них.
7. Запускать тесты удаленно с помощью Trigger URL. По сути надо просто перейти по специальной URL с любого устройства, и тест начнется.
8. Сохранять результаты предыдущих тестов, если вы не хотите смотреть их прямо сейчас.
Ценовой политикой [5] в Runscope определяется только количество пользователей на организацию и количество запросов в месяц. За превышение лимита запросов необходимо отдельно доплачивать (около 0.30 центов за 1000 запросов).
Но можно остаться и на бесплатном аккаунте.
Runscope активно развивается и часто выкатывает новые фичи. Сервис предельно простой, и в этой статье описана далеко не вся его функциональность. У нас в Redmadrobot с ним работают не только QA, но также разработчики и бизнес-аналитики. Сейчас мы используем Runscope для тестирования новых и старых API, для просмотра JSON-строк в удобном формате и для сбора логов по разным аккаунтам.
Для перехвата выдачи сервера на конкретном устройстве мы используем Charles [6], но об этом как-нибудь потом.
Автор: yaryabu
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/86640
Ссылки в тексте:
[1] Runscope: https://www.runscope.com/
[2] Chai Assertion Library: http://chaijs.com/api/assert/
[3] сторонних библиотек: https://www.runscope.com/docs/radar/scripts#libraries
[4] документацию: https://www.runscope.com/docs
[5] Ценовой политикой: https://www.runscope.com/pricing-and-plans
[6] Charles: http://www.charlesproxy.com/
[7] Источник: http://habrahabr.ru/post/253777/
Нажмите здесь для печати.