Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Авто-тесты Java: как подключиться к телефону и достать из смс код подтверждения

#java #test_automation #testng


Пишу автотесты на Java + testNG. 
Для некоторых тестов, по типу регистрации, подтверждение приходит в виде 6ти значного
цифрового кода в смске на телефон. Т.к. это осуществляется сторонними сервисами, то
нет возможности создать универсальный тестовый код подтверждения, поэтому необходимо
подключаться к телефону, из смс выдергивать код подтверждения и передавать его дальше
по API или через UI. 

Немного сталкивался с Appium для выполнения тестов на телефоне (работа с браузером),
но никогда не приходилось лезть в смс и доставать оттуда какие-либо данные. 

Просьба подсказать/дать ссылку - что почитать, изучить, с помощью чего смогу реализовать
данный функционал.
    


Ответы

Ответ 1



Узнаешь app activity и app package приложения который отвечает у тебя за смс, после определяешь элементы и используешь. Что бы узнать app activity и app package делаешь следующие: открываешь командную строку вбиваешь: adb shell. В момент открытия приложения на телефоне вбиваешь dumpsys window windows | grep -E ‘mCurrentFocus’ Для следующего шага тебе понадобиться включить appium. Открываешь среду разработки -> cоздаешь класс, в него пихаешь код: static DesiredCapabilities caps; static AndroidDriver driver; static void appium_option_zte() { caps = new DesiredCapabilities(); caps.setCapability("deviceName", "Имя деваса"); caps.setCapability("udid", "f9c944bf");// тут все понято caps.setCapability("platformName", "Android"); //платформа caps.setCapability("platformVersion", "7.1.1"); //версия ведра caps.setCapability("appPackage", "mobi.sevenwinds.askedo"); caps.setCapability("appActivity", "mobi.sevenwinds.askedo.gui.start.splash.SplashActivity"); caps.setCapability("noReset", "true"); try { driver = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"), caps); } catch (MalformedURLException e) { System.out.println("Ошибка отправки команды на сервер"); System.out.println(e.getMessage()); } Если все сделал правильно при результатом компиляции будет открытие приложения. Дальше с помощью appium или uiautomator узнаешь id интересующий тебя компонентов. Здесь подробно описана работа с appium для начинающего

Ответ 2



как вариант еще посоветовали использовать http://codolutions.com/relayme.html для андроида. На айфоне пересылка смс на почту настраивается стандартными функциями Settings->Messages->Recieve At -> Add Email далее зайти на почту, распарсить письмо и получить код. Правда не уверен, все ли смс будут перенаправлены на почту, и сколько времени займет пересылка и доставка на почту, т.к. время жизни смс кода ограничено 120 сек.

Комментариев нет:

Отправить комментарий