Мобильное приложение на андроид (iOS в ближайшей перспективе), REST, Appium, Ruby.
Нужно каким либо образом проверять сработала ли кнопка или нет(напр. Логин) т.е. ушел ли запрос на сервер, и каков был ответ(что более актуально, тк. по тост сообщения не отлавливаются)
Я вижу два варианта - отслеживать на сервере, и на клиенте. по первому понятно - доступ к базе и пр.
по второму: для ручного тестирования использую сниффер трафика, и по нему смотрю что куда и как ушло и пришло.
Вопрос такой: каким образом можно монитрить траффик девайса, так что бы иметь доступ к запросам/ответам от сервера. в идеале - кроссплатформенные варианты
Видеть ответы сервера на запросы девайса вы должны в своём сниффере. Мы для этого используем fiddler Fiddler | Web Debugging Proxy and Troubleshooting Solutions. Для того, чтобы видеть запросы сервера (например, если он обращается к каким то сервисам), нужно сниффать траффик сервера. Для этих целей можно опять же использовать фиддлер. Только на сервере нужно указать хост с фиддлером как прокси.
Если нет возможности настроить прокси на сервере, то сниффер нужно ставить на сам сервер.
Могут возникнуть сложности с мониторингом https трафика.
Когда тестирую руками примерно так и делаю, только использую Charles.
Но вопрос на самом деле про программный мониторинг трафика для его дальнейшего использования в тестах (не было ясно с моего поста, обновил)
А можно вопрос. А зачем сниферить трафик в вашем случае? Клиент и сервер адекватно реагируют друг на друга, ну и нормально, нет? Или какое-то особое поле?
Дело в проверках. Например при некорректных данных в случае логина, серверная валидация каких либо полей, и пр. у Андроида это реализованно через тост уведомления. как их отлавливать - не представляю. вот и пришла идея про мониторинг траффика.
зарос вида POST ./login с контентом.
в ответ приходит в зависимости от контента: 200 OK / 401 Unauthorized
Во втором случае так же приходит json с конкретной проблемой(не валидные данные/ пользователь заблокирован/пр)
вот и на основе этих ответов приложение делает разное. переводит на другой экран, показывает тосты, и пр.
вот и хочу иметь доступ к рест интерфейсу. и в нужные моменты проверять правильно ли приложение отреагировало
Наверно не полно обьяснился. имеем такую систему:
приложение, и экран логина. в нем поле ввода пароля и кнопка логин
при удачном логине открывается другой экран ( тут проблем вообще нет)
при не удачном логине, в зависимости от введеного пользователем, от состояния сервера, наличия интернета, и пр - появляется тост сообщение с соответсвующим сообщением.
На андроиде адекватно эти тосты не отлавливаются, но такие кейсы нужно проходить. как один из вариантов решения которые пришли мне в голову - и было использование сниффера на девайсе, для мониторинга трафика.
другие варианты были таковы:
смотреть на сервере(логи, сама база(есть счетчики логинов) и пр)
делать скриншоты экрана с тостом, и читать текст с картинки. и там уже находить нужное.
Вот последний вариант таки получилось реализовать. Но возможность отслеживать траффик, отдельно от этой задачи, все равно класная фича:)
А зачем отслеживать??? Отправляйте сами ответ от сервера. Тут действительно надо разбивать задачу. Отдельно сервер, отдельно клиент. А потом уже интеграционные тесты.