Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Инструменты для тестирования Android и iOS приложений

java
webdriver
android
ios
Теги: #<Tag:0x00007f7b6228a7f0> #<Tag:0x00007f7b6228a660> #<Tag:0x00007f7b6228a520> #<Tag:0x00007f7b6228a3b8>

(Natalja Librante Lace) #1

Тут уже все это неоднократно спрашивали, и я буду 101-м человеком задающим этот вопрос. но все-таки…
Встал вопрос о тестировании мобильного приложения, которое делается под Android и под iOS
Фишка в том, что WEB-версию этого самого приложения я уже активно авто-тестирую в течении года с помощью Maven+Selenium+Java+Thucydides

Про appium читала и даже смотрела видео, но пока как-то сомневаюсь в том, чтобы его использовать (как минимум потому, что на последней “авто-конфетке” докладчик честно рассказал об общеизвестном баге при запуске, который девелоперы так и не удосужились исправить в течении многих месяцев)

Склоняюсь больше к отдельным инструментам для Android и для iOS (тем более, что тесты для последнего будут запускаться вообще на отдельной маковской машине).
Вопрос: с моим Selenium+Java-бэкграундом в какую сторону лучше всего смотреть? И вообще это как-то влияет на выбор? Или надо будет все-равно все с нуля по сути своей начинать?


Дайджест полезных ссылок для тестировщиков-автоматизаторов #028
(Andrey Kharkov) #2

Для android лучше всего UiAutomator, Robotium не советую - очень ограниченный.


(Oleksandr Pylkevych) #3

К сожалению, пока-что не тестировал iOS, а вот по андроиду советую Robotium, UIAutomator, также люди советуют Calabash. Больше всего мне понравился UIAutomator (простой API), для тестирования не требуется обязательного наличии сорцов приложения, можно тестировать одновременно несколько приложений (взаимодействие). Robotium тоже нормальный, но ограниченный по сравнению с тем же UIAutomator. Для ознакомления с UIAutomator посоветую три ссылки и уже сегодня или завтра, в крайнем случае в понедельник ты будешь писать тесты :wink:

Тем более у тебя опыт тестирования вэба, проблем не будет особых. А я вот всячески избегаю работы с вэбом, но судя по тенденциям вопросов и рынка нужно заниматься самообразованием в автоматизации тестирования вэба.


(Дмитрий Жарий) #4

Ничего не скажу, и просто оставлю это тут для обсуждения:

Espresso a fun little Android UI test API

public void testSayHello() {
  onView(withId(R.id.name_field))
    .perform(typeText("Steve"));
  onView(withId(R.id.greet_button))
    .perform(click());
  onView(withText("Hello Steve!"))
    .check(matches(isDisplayed()));
}

(Oleksandr Pylkevych) #5

Согласен, API проще некуда, но лично я пока не использовал. А можно ли тестировать несколько приложений? Можно ли тестировать приложение, если нет исходников или приложение предустановленное?


(Natalja Librante Lace) #6

Спасибо за советы[quote=“dzhariy, post:4, topic:4326”]
Ничего не скажу, и просто оставлю это тут для обсуждения:

Espresso a fun little Android UI test API
[/quote]

Тоже почитала и даже видео посмотрела на официальной странице, но, возможно, для меня это слишком простой инструмент. Потому что мне надо не просто кликнуть и получить подтверждение, что на клик что-то показалось, но и сделать выбор по определенному критерию из выпадающего списка, например. Или сохранить значение на одной странице и убедится, что это значение не изменилось при переходе на следующий экран.

То, что я поняла из видео-презентации создатели этого инструмента сознательно максимально все упростили, а в моем случае это скорее минус, чем плюс… Поправьте меня, если я не права


(olka) #7

подскажите, а нет такого инструмента,чтоб использовать сразу для двух платформ. для создания одного фреймворка. или все равно нужно разделять?


(Oleksandr Pylkevych) #8

возможно Calabash и appium


(olka) #9

просто на счет appium читала, что запускается все на Mac, а если из под винды, чтоб в одной среде программировать?


(Oleksandr Pylkevych) #10

Писать вы можете, где угодно, но проверять-то нужно будет на Mac OS. Если Вы хотите писать и под Android, и под iOS, то лучше уже все делать на Mac OS. Тем более, Android SDK есть под MacOS.


(olka) #11

а еще такой вопрос .а можно запускать с CI это чудо, в часности c Bamboo


(Dmitry Cheremushkin) #12

Да, конечно.
Достаточно возможности запускать shell-скрипт, а это возможно в любом современном CI. В Bamboo — через Script Task.


(Dmitry Cheremushkin) #13

Ещё MonkeyTalk — тоже кроссплатформенный.


(Dmitry Cheremushkin) #14

Свежая дискуссия на тему: UI/Acceptance/Integration тестирование iOS-приложений


(Oleksandr Pylkevych) #15

Я пока не пользовался им.


(Dmitry Cheremushkin) #16

Если есть опыт работы с Selenium, то будет проще работать с Appium, Selendroid, ios-driver. Они поддерживают WebDriver API. Я бы рекомендовал первый инструмент — Appium.


(Natalja Librante Lace) #17

Если я правильно поняла, то Appium лучше сразу устанавливать на Mac и уже на мак добавлять андроид для кросс-платформенного тестирования? Я пыталась установить Appium на машину под Windows7, но как-то у меня не заработало ничего


(Dmitry Cheremushkin) #18

На Мак сразу удобней, т.к. на одной машине можно убедиться, что тесты работают на 2х платформах. И в случае чего отладить их.

На Windows 7 должно работать. В чём именно у вас возникли сложности?
Делали по этой инструкции?


(Natalja Librante Lace) #19

Да, по ней. На чем застопорилось я уже не помню, но когда начала гуглить проблему поняла, что appium лучше сразу ставить на мак и поэтому решила не тратить время (которого было сильно в обрез) на Windows.


(Dm Grin) #20

прошу прощения за археологию, но других тем по еспрессо не нашел

я тоже так думал, оказалось наоборот)
несколько недель ковыряю еспрессо на реальном проекте. Штука сложная но мощная.
Основной плюс - скорость. Вейтам и слипам - бой, это же и основной гиморой т.к. нужны танцы с бубнами чтобы регистрировать ресурсы для синхронизации потоков приложения и тестов.

на презентациях всегда так выглядит, просто и гладко. Для всего этого используется hamcrest matcher библиотека которая способна вычленить практически любой елемент из UI приложения, по любому аттриьуту в т.ч. из AdapterView
https://code.google.com/p/hamcrest/wiki/Tutorial

никаких сахарных тулзей, распознавалок и утилит. код в скриптах только ручками, только хардкор.

лично мне еспрессо кажется сложным, но если доведут до ума - перспективным.
если есть люди которые так же разбираются с еспрессо и имеют много вопросов и непоняток - пишите в скайп november1306.