Актуальный apk для appium тестов в jenkins

jenkins
appium
android
Теги: #<Tag:0x00007fedc7b1ae38> #<Tag:0x00007fedc7b1acf8> #<Tag:0x00007fedc7b1abb8>

#1

Друзья, я ознакомливаюсь с Appium и автоматизацией тестирования нативных android приложений и хотел бы попробовать настроить jenkins. Никак не приходит в голову как решить вопрос с .apk для appium тестов. Мое нативное приложени будет собираться в другой job, это будем android studio проект, который собирается с помощью gradle. А как appium job (это отдельный maven проект) получит собранный apk? На http://stackoverflow.com/ ничего не нашел, наверное потому что неправтльно формулирую вопрос :slight_smile: Может кто такое делал? Подскажите, пожалуйтса, в каком напрвлении двигаться


(Константин) #2

Видится, что правильнее будет сделать установку, собранного .apk, на девайс до запуска appium job`а
Ну или в самих тестах сделайте первым шагом установку собранного apk средствами Appium.


(Ray Romanov) #3

В моем случае у меня это в одном job:

  1. Щупаем SVN ежеминутно на commit, если поступило то:
  2. Запускаю скрипт проверки на возможные обновления тестов и соответственно их чекаплю
  3. Запускаю Ant, где происходит сборка по сценарию в build.xml
    3.1. Сборка и компиляция Android (iOS) проекта, если удачно то копирую готовое приложение туда где тесты его будут брать для эмулятора.
    3.2. Определяю какие группы должны запустится (по файлсетам исходников)
    3.3. Запускаю соответствующие группы (в конфиге прописано где лежит файл приложения)
    3.5. Собираю логи
  4. Отправляю письмо с логами если job зафейлилась для разборки.

Вроде все.


#4

Супер, похоже что 3.1 – это то что мне надо. Это делается с помощью шага job’а после выполнения сборки? Можно ссылку на хелп, если есть такая?


(Ray Romanov) #5

Все что 3.1.-3.5. это в одном build.xml для Ant. Могу сейчас только для iOS показать, для Android только завтра вечером.


#6

А, то есть это ант копирует файлы. Тогда обойдусь без примера. Ясно, спасибо большое за наводку, буду пробовать


(Dmitry Bogatko) #7

У дженкинса есть возможность шарить любые артефакты между джобами. Т.е. один билдит апк и шарит его. Другой джоб забирает


#8

Да-да, вот плагин Copy Artifact Plugin
Только я еще не добрался до этого пункта :slight_smile: Что-то у меня эмулятор не хочет запускаться, говорит “[android] Timed-out after waiting 360 seconds for emulator”. Вы не сталкивались с таким поведением в Android Emulator Plugin?

UPD: emulator заработал, почему-то не запускался конкретно Nexus 5 system image


(Dmitry Bogatko) #9

Большой практики не имею с мобилками, но знаю что дефолтный эмулятор гавно. Используйте Genymotion


(Ray Romanov) #10

От части согласен, НО если используются ARM зависимые библиотеки то Genimotion тут не поможет (правда есть костыльное решение) хотя эмуляция очень медленная :frowning: в частности Win, на Linux пошустрее работает (меньше прокладок)


#11

Яростно плюсую насчет genymotion. Сейчас хочу для начала хоть как-то это добро с дефолтным эмулятором собрать в кучу. Все вроде запускается и… ничего не происходит. Хоть бы блин стектрейс был вразумительный


#12

Кстати, вопрос решен.
Upd: перепутал ссылку.
Вот как надо https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin
или же https://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html . Либо любым другим инструментом сборки :slight_smile: