2016-02-23 2 views
10

За последние несколько недель я использовал Appium(python) для тестирования Android, но вчера мы решили перейти на Expresso(Java) для автоматического тестирования. Есть несколько причин, почему мы делаем этот сдвиг:Appium vs Espresso для автоматизированной системы тестирования

  • Мы хотим, чтобы масштабировать наше автоматизированное тестирование, и есть много возможностей, не присутствующих в appium.

  • Это одна из последних рамок тестирования для Android и имеет хорошую обратную совместимость.

  • Малый API и очень легко настроить.

Я читал для Espresso, но я не нашел ничего хорошего, если сравнить его с Appium. Я Python/R developer, так что, может быть, есть несколько моментов, которые я не могу понять. Кто-нибудь хотел бы помочь мне понять, будет ли переход к новой платформе тестирования хорошим для будущего? Мне не хватает более широкой картины здесь, и любая помощь будет принята с благодарностью.

+0

не забудьте поделиться своим опытом/впечатлениями – kiedysktos

ответ

8
  1. Shifting будет очень полезен, поскольку Espresso поддерживает тестирование действий вне приложения, таких как камера, браузер и дозвонщик и т. Д., Которые appium не поддерживает.
  2. Эспрессо, вы можете проверить сообщение тоста, автозаполнение и диалоги, которые находятся за пределами приложения.
  3. С кошельком для проверки эспрессо вы можете найти покрытие кода и измерить свои усилия по тестированию.
+2

I «Не уверен, что вы можете проверить вещи за пределами вашего приложения с помощью Espresso. Для этого вам нужно будет использовать что-то вроде ui-automator. См. https://developer.android.com/training/testing/ui-testing/espresso-testing .html и https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html –

+1

@YairKukielka Это правда, Espresso не поддерживает тестирование вне приложения, но может работать в тандеме с UiAutomator. , в том же тестовом коде вы можете написать Espresso, а также UiAutomator и, следовательно, тестировать, а также вне приложения. Ссылка: https://plus.google.com/+AndroidDevelopers/posts/WCWANrPkRxg – user846316

+1

вы можете использовать Espresso Intent протестировать Came ra и дозвонщик телефона за пределами вашего приложения. Это то, что я имел в виду в своем ответе. –

8

Вы можете пойти в Espresso, если вы придерживаетесь только системы Android и не имеете понятия об автоматизации iOS.

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

Преимущество в том, что он напрямую открыт google.

Но я хочу пойти с Appium с его большого сообщества с открытым исходным кодом с огромными улучшениями на своем пути и легко автоматизировать с любым языком программирования, и, разумеется, он поддерживает как Android, так и iOS.

+1

Я согласен с вашими взглядами. –

+0

Можете ли вы пояснить, что вы имеете в виду под «огромными улучшениями на своем пути»? Мне не удалось найти значительную значимость. – olevegard

+0

Я думаю, что appium поддерживает очень низкий уровень api, но теперь его единственный «5.0», что не так. –

4

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

Тем не менее, я придерживаюсь Appium, потому что он имеет тот же API для AndroidDriver и iOSDriver. Обычно приложения для Android сопровождаются приложениями iOS, и если вы отвечаете за автоматизацию пользовательского интерфейса, вы должны учитывать общие затраты.

Appium имеет следующие преимущества по сравнению с конкретной платформы решения:

  • тесты программ для Android и IOS могут обмениваться много классов, в том числе вспомогательных методов и конфигурации,
  • тесты программ для Android и IOS могут совместно использовать общие тесты логики на более высоком уровне , хотя на более низком уровне имеет другую или немного другую реализацию (например, иногда я могу просто скопировать класс объектов цельной страницы и сделать простое изменение локаторов, чтобы заставить его работать на другой платформе)
  • тот же API позволяет нам легко переключаться между iOS и Android test deve lopment в команде.Дополнительным преимуществом является простое переключение на Selenium для веб-разработки.

Самый большой недостаток Appium - это скорость более длительных тестовых сценариев и некоторые трудности при размещении элементов, но все же это мой выбор.

Как примечание стороны, я хотел бы добавить, что вы не должны забывать о тестовой пирамиде, которая относится к автоматизации тестирования. Пожалуйста, сохранить равновесие между юнит-тесты, тесты интеграции и UI тесты http://martinfowler.com/bliki/TestPyramid.html

+0

Что вы посоветуете с точки зрения стабильности и долгосрочной стоимости обслуживания? Апиум или эспрессо? –

1

Основное различие между ними состоит в том,

тест Эспрессо в приложении, и это знают все слои приложения. Таким образом, вы можете издеваться над определенными слоями приложения, скорее как тестирование белого ящика.

Тесты Appium - это черный ящик, тесты знают только уровень пользовательского интерфейса приложения. Основное преимущество - кросс-платформенное тестирование.

Смежные вопросы