Calabash
Автоматизированное тестирование
мобильных приложений
#qameetup61
Докладчик: Юрий Комаров
Зачем нужно BDD тестирование?
•в связи с ростом функциональности
приложения трудозатраты на
регрессионное тестирование становятся
непомерно велики;
•разнообразие линейки поддерживаемых
устройств и версий ОС.
И что же делать?
Calabash + Cucumber
Какой такой Calabash?
Calabash — это фреймворк для
автоматизации функционального
тестирования, который, по сути, является
драйвером, управляющим работой
приложения на девайсе или симуляторе.
А причем тут Cucumber?
Cucumber — это написанная на RUBY
библиотека для тестирования, которая
предлагает описывать сценарии
тестирования на естественном языке в
обычном текстовом файле.
И в чем же сила огурца?
•нет необходимости логирования при
написании тестов — каждый сценарий по
сути своей является тест-кейсом;
•для описания сценариев используется язык
Gherkin и шаблон Given/When/Then/And,
где ключевое слово Given задает
начальные условия, When —
операцию, Then — конечный результат.
И как же это все работает?
Cucumber Features
Feature: FTPSample
Scenario: FTPSample Scenario
Given I wait for "Tap Get to start getting" to appear
When I clear text field number 1
And I press "Get"
Then I wait for "Invalid URL" to appear
Then I wait
Then I touch the get tab
Cucumber Step Definitions
Then (/^I touch the (url_get|get|list|put|create_dir) tab$/) do |tab|
wait_for_elements_exist('tabBarButton')
case tab
when 'url_get’
index = 0
…
…
when 'create_dir’
index = 4
end
touch("tabBarButton index:#{index}")
end
calabash-ios console
• ids => List all the visible accessibility ids.
• labels => List all the visible accessibility labels.
• text => List all the visible texts.
• marks => List all the visible marks.
• tree => The app's visible view hierarchy.
• flash => Disco effect for views matching <query>
• verbose => Turn debug logging on.
• quiet => Turn debug logging off.
• copy => Copy console commands to clipboard.
• clear => Clear the console.
calabash-ios console
[yurikomarov@calabash-sandbox]$ calabash-ios console
calabash-ios 0.20.4> text
[0] UIButtonLabel => Get
[1] UILabel => Tap Get to start getting
[2] UITabBarButtonLabel => Create Dir
[3] UITabBarButtonLabel => Get
[4] UITabBarButtonLabel => List
[5] UITabBarButtonLabel => Put
[6] UITabBarButtonLabel => URL Get
[7] UITextFieldLabel => file URL
Xamarin Test Cloud
ПЛЮСЫ:
+ ~2000 девайсов для тестов
+ возможность выбора версии OS
+ просмотр device log
+ командный аккаунт
+ 30 дней триала
МИНУСЫ:
- нужно платить
- очередь на выполнение теста
- конфиденциальность
приложения под вопросом
Он сказал «ПОЕХАЛИ!»
Спасибо за внимание!
Контакты:
www: yurikomarov.blogspot.ru
e-mail: yuri.komarov@umbrella-web.com
Umbrella WEB:
www: umbrella-web.com
email: hello@umbrella-web.com

Calabash. Автоматизированное тестирование мобильных приложений

  • 1.
  • 2.
    Зачем нужно BDDтестирование? •в связи с ростом функциональности приложения трудозатраты на регрессионное тестирование становятся непомерно велики; •разнообразие линейки поддерживаемых устройств и версий ОС.
  • 3.
    И что жеделать? Calabash + Cucumber
  • 4.
    Какой такой Calabash? Calabash— это фреймворк для автоматизации функционального тестирования, который, по сути, является драйвером, управляющим работой приложения на девайсе или симуляторе.
  • 5.
    А причем тутCucumber? Cucumber — это написанная на RUBY библиотека для тестирования, которая предлагает описывать сценарии тестирования на естественном языке в обычном текстовом файле.
  • 6.
    И в чемже сила огурца? •нет необходимости логирования при написании тестов — каждый сценарий по сути своей является тест-кейсом; •для описания сценариев используется язык Gherkin и шаблон Given/When/Then/And, где ключевое слово Given задает начальные условия, When — операцию, Then — конечный результат.
  • 7.
    И как жеэто все работает?
  • 8.
    Cucumber Features Feature: FTPSample Scenario:FTPSample Scenario Given I wait for "Tap Get to start getting" to appear When I clear text field number 1 And I press "Get" Then I wait for "Invalid URL" to appear Then I wait Then I touch the get tab
  • 9.
    Cucumber Step Definitions Then(/^I touch the (url_get|get|list|put|create_dir) tab$/) do |tab| wait_for_elements_exist('tabBarButton') case tab when 'url_get’ index = 0 … … when 'create_dir’ index = 4 end touch("tabBarButton index:#{index}") end
  • 10.
    calabash-ios console • ids=> List all the visible accessibility ids. • labels => List all the visible accessibility labels. • text => List all the visible texts. • marks => List all the visible marks. • tree => The app's visible view hierarchy. • flash => Disco effect for views matching <query> • verbose => Turn debug logging on. • quiet => Turn debug logging off. • copy => Copy console commands to clipboard. • clear => Clear the console.
  • 11.
    calabash-ios console [yurikomarov@calabash-sandbox]$ calabash-iosconsole calabash-ios 0.20.4> text [0] UIButtonLabel => Get [1] UILabel => Tap Get to start getting [2] UITabBarButtonLabel => Create Dir [3] UITabBarButtonLabel => Get [4] UITabBarButtonLabel => List [5] UITabBarButtonLabel => Put [6] UITabBarButtonLabel => URL Get [7] UITextFieldLabel => file URL
  • 12.
    Xamarin Test Cloud ПЛЮСЫ: +~2000 девайсов для тестов + возможность выбора версии OS + просмотр device log + командный аккаунт + 30 дней триала МИНУСЫ: - нужно платить - очередь на выполнение теста - конфиденциальность приложения под вопросом
  • 13.
  • 14.
    Спасибо за внимание! Контакты: www:yurikomarov.blogspot.ru e-mail: yuri.komarov@umbrella-web.com Umbrella WEB: www: umbrella-web.com email: hello@umbrella-web.com

Editor's Notes

  • #8 Архитектурно Calabash состоит из двух частей — клиентской и серверной Серверная часть представляет собой HTTP-сервер, который встраивается в тестируемое приложение и принимает запросы на выполнение тех или иных действий в приложении, клиентская часть написана на Ruby и реализует API для взаимодействия с сервером.