Size: a a a

Мобильное тестирование с Appium

2020 January 29

BO

Boris Osipov in Мобильное тестирование с Appium
Глеб Щукин
посоветуйте с организацией параллельного запуска эмуляторов.
извиняюсь за простыню текста, но уже нет вариантов.
есть 10 эмуляторов (сейчас это эмуляторы ios).
проблема 1.
тесты начинают отрабатывать нестабильно, если запущено более 2 эмуляторов параллельно. ок, я в maxInstances ставлю 2.
возникает проблема 2.
теперь одновременно тесты запущены на двух эмуляторах. но те, на которых тесты прошли не выгружены из системы, остаются запущенными и соответственно жрут ресурсы, тесты опять начинают падать.
ок. по хуку окончания тестов запускаю скрипт, который закрывает эмуляторы.
проблема 3.
я использую фреймворк webdriverIO. и там нет хука что нибудь вроде afterAllSpecComplete. Могу подвеситься только  на хук afterSession(например), который вызывается после выполнения каждого файла spec. Если цепляться за него, то эмуляторы начинают вести себя неадекватно: перезапускаются без изображения на экране, при этом тесты вроде проходят (судя по логам), но время на каждый тест возрастает до неприемлемого.
сейчас вижу только один выход - разделить эмуляторы по два на разные файлы, и для каждой пары создавать свою задачу. я имею в виду, что сейчас есть команда (условно) npm run e2e:app, а будет что то вроде npm run e2e:app-1 npm run e2e:app-2... но в этом случае опять что то нужно будет костылить с последовательностью
а зачем "выгружать" эмуляторы? и почему на них не удаляется\киляется приложение, которые тестируешь между тестами\спеками
источник

ГЩ

Глеб Щукин in Мобильное тестирование с Appium
Boris Osipov
а зачем "выгружать" эмуляторы? и почему на них не удаляется\киляется приложение, которые тестируешь между тестами\спеками
выгружаю, потому что ПК не вывозит более двух в фоне. про приложение не понял. но между спеками состояние приложения ресетится если ты про это
источник

M

Mike in Мобильное тестирование с Appium
Всем привет!
Я использую(точнее, начинаю использовать) связку selenide+appium.
В данной конфе я нашел отличный пример от админов на основе приложения википедии. И нагло начал воровать оформление, архитектуру проекта и тд.
Ссылка на проект админа - https://github.com/wikipedia-qa/wikipedia-selenide

У меня тоже нативное мобильное приложение. Правда, пока что только андроид.

Я начал делать базовый кейс: открыть приложение, вставить адрес стенда, подтвердить.
IDE настроена корректно, веб тест базовый работает.
ОС - Каталина, эмулятор - от Android Studio. Capability сверил, к тому же копипастил из аппиум десктоп.
На момент запуска теста эмулятор запущен и виден в аппиум десктоп.
Apk добавлен в папку resources/apks и путь в капабилитис указан именно к приложению в проекте.
Ловлю ошибку java.lang.IllegalArgumentException: Cannot detect type of the Driver. Platform value: null

Мой код в gist - https://gist.github.com/samesmile/518fb7590cbcdd3d4d8f1ff270bb2316
источник

IV

Igor Vlasyuk in Мобильное тестирование с Appium
ну видимо строчка System.getenv("PLATFORM"); возвращает null
переменную среды "PLATFORM" как то устанавливал ?
источник

M

Mike in Мобильное тестирование с Appium
Igor Vlasyuk
ну видимо строчка System.getenv("PLATFORM"); возвращает null
переменную среды "PLATFORM" как то устанавливал ?
Типа устанавливать через терминал? Думаю нет, такое не делал
источник

IV

Igor Vlasyuk in Мобильное тестирование с Appium
можно также в коде установить, поищи, там легко.
По хорошему значение этого параметра должно идти из файла свойств и уже в коде сеттиться.
источник

M

Mike in Мобильное тестирование с Appium
Igor Vlasyuk
можно также в коде установить, поищи, там легко.
По хорошему значение этого параметра должно идти из файла свойств и уже в коде сеттиться.
Спасибо, попробую
источник
2020 January 30

MK

Maxim Kapanzhi in Мобильное тестирование с Appium
Всем привет, только вхожу в автотестирование, нужна помощь тех, кто разворачивал автотестирование с нуля. Использовали ли вы какие-либо дополнительные фреймворки за основу? Или просто писали с нуля?
источник

АС

Александр Сивочка in Мобильное тестирование с Appium
Всем привет!
Начинаю изучать тестирование мобильных приложений. Столкнулся с таким кейсом, когда нужно получить цвет конкретного элемента. Можно ли это сделать с помощью аппиум? Гугл говорит, что нет. Может есть какие-то решения? Стек java+selenide+testNG
источник

DS

Daniil Stepanov in Мобильное тестирование с Appium
element.getAttribute("color");
источник

DS

Daniil Stepanov in Мобильное тестирование с Appium
selenium
источник

АС

Александр Сивочка in Мобильное тестирование с Appium
Daniil Stepanov
element.getAttribute("color");
это для вебвью?
источник

AC

Alice Carroll in Мобильное тестирование с Appium
Александр Сивочка
Всем привет!
Начинаю изучать тестирование мобильных приложений. Столкнулся с таким кейсом, когда нужно получить цвет конкретного элемента. Можно ли это сделать с помощью аппиум? Гугл говорит, что нет. Может есть какие-то решения? Стек java+selenide+testNG
Нормально - никак, но можно  
Получите координаты какой-нибудь точки в нужном элементе, снимите скрин и в нем смотрите
источник

DS

Daniil Stepanov in Мобильное тестирование с Appium
Александр Сивочка
это для вебвью?
Da
источник

АС

Александр Сивочка in Мобильное тестирование с Appium
у меня нативное приложение. И для него этот вариант не работает(
источник

AC

Alice Carroll in Мобильное тестирование с Appium
fun getColor(): Int {
           lateinit var driver: AppiumDriver<MobileElement>
           lateinit var element: MobileElement
           
           val center = element.center
           val screen = ImageIO.read((driver as TakesScreenshot).getScreenshotAs(OutputType.FILE))
           return screen.getRGB(center.x ,center.y)
       }
источник

AC

Alice Carroll in Мобильное тестирование с Appium
Как-то так примерно
источник

AC

Alice Carroll in Мобильное тестирование с Appium
В java я надеюсь перепишите сами
источник

АС

Александр Сивочка in Мобильное тестирование с Appium
Alice Carroll
fun getColor(): Int {
           lateinit var driver: AppiumDriver<MobileElement>
           lateinit var element: MobileElement
           
           val center = element.center
           val screen = ImageIO.read((driver as TakesScreenshot).getScreenshotAs(OutputType.FILE))
           return screen.getRGB(center.x ,center.y)
       }
Спасибо, попробую
источник

АС

Александр Сивочка in Мобильное тестирование с Appium
@AliceCarroll239 , благодарю за помощь. Все вышло.
источник