Автоматизация тестирование внешнего API используя Postman

Здравствуйте!

Всего пару недель разбираюсь с архитектурой приложения, хочу разработать качественную и полезную схему тестирования.

Есть мобильное приложение (Android+iOS), которое содержит различные разделы.
Например: расписание авиарейсов, погода, курсы валют.
Все эти данные приложение получает через API других сервисов.
То есть достоверность выдаваемых данных напрямую зависит от внешних источников.
То есть основная идея тестирования на данный момент: создать коллекцию автотестов, чтобы пройти по списку из 100 запросов и проверить, выдают ли они требуемую информацию, с которой приложение будет стабильно работать.

На данный момент используя документацию из Swagger, я перенес все запросы в Postman(с которым две недели опыта), и проверил их вручную. Частично сгруппировал под автотесты. Сейчас разбираюсь с валидацией ответов и написанием тестов.

Хочу услышать мнение профессионалов, как улучшить подход к тестированию приложения такого плана? Какой подход был бы наиболее эффективным?

Любые внешние зависимости должны быть замоканы, тестируемое окружение должно быть контролируемым и стабильным; другого не дано

Мокать тем же Postman’ом? Видел много инструментов, какой оптимальнее в конкркетном случае на Ваш взляд?

Да любой инструмент подойдет, который придется по вкусу.
На текущих проектах - юзаем свой самописный http/https мок: по сути веб-сервер (python/tornado), которому можно в любой момент задавать условия: если на такой-то урл пришел запрос - ответить такими-то статус кодом, хедерами и боди.

Присоединюсь к топикстартеру, тоже интересует эта тема. Но для начала, на мой взгляд мокать прям сразу - гемор. Надо сначала с инструментом разобраться, а потом уже доводить до идеала.
С этими мокапами он задолбается на этапе гуглежки и тесты не допилит, ну это имхо

UPD: Если у тебя есть задокументированное API (я имею в виду Swagger), можно попробовать использовать dredd.

http://dredd.org/en/latest/index.html

1 лайк

Мокать - это не гемор, это верный подход к тестированию приложения
Надо просто понять, что мы тестируем: наше приложение (в данном случае - мобильное), или внешнее API

Вчера основательно разбирался, перечитал много всего.
Идея какая:

  1. Внешний API нужно тестировать с тем чтобы быть уверенным, что его не обновили, и он не сломался. То есть самые примитивные тесты на первый уровень. Если тесты дают сбой: сразу ясно где проблема.

  2. Использовать моки, либо собственный сервер для генерирования данных, которые будет получать приложение. Здесь скорее всего только вручную проверять, как приложение будет реагировать на нестандартные ответы сервера.

Как я писал выше Swagger есть, документации там очень немного.
Спасибо, гляну детальнее про dredd

Самописное не вариант. Лучше что-то широко используемое, с хорошей логикой.

Внешний API нужно тестировать с тем чтобы быть уверенным, что его не обновили

Чтоб уж быть точным, то внешний API не тестируют - его мониторят. Например на набор определённых условий.

Тестировать можно ваше приложение на предмет того, что оно корректно работает с ответом внешнего API. Но так как входные данные тут могут постоянно меняться, то и ожидаемый результат тоже может быть разным - мокают как раз чтобы этого избежать. Так что здесь тоже задача возможно сводится к мониторингу, а не к тестированию.

2 лайка