Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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

api
postman
android
ios
Теги: #<Tag:0x00007f7b63124bd0> #<Tag:0x00007f7b63124a90> #<Tag:0x00007f7b63124950> #<Tag:0x00007f7b63124810>

(Timur Colesnic) #1

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

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

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

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

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


(ex3me0) #2

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


(Timur Colesnic) #3

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


(ex3me0) #4

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


(Nikita Barchugov) #5

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

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


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


(ex3me0) #6

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


(Timur Colesnic) #7

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

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

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


(Timur Colesnic) #8

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


(Timur Colesnic) #9

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


(SlavikF) #10

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

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

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