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

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

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

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

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

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

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

1 лайк

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

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()));
}
3 лайка

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

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

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

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

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

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

возможно Calabash и appium

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

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

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

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

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

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

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

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

1 лайк

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

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

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

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

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

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

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

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

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