#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 AndroidDriverdriver; 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 сек.
Комментариев нет:
Отправить комментарий