Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Calabash Andoird + Calabash iOS
automated testing of mobile applications
Is it time to automate?
Tools
Android iOS
Calabash Android Calabash iOS
MonkeyTalk Frank
Robotium UIAutomation
Selendroid KeepItFunctional
UIAutom...
Which tool to choose?
Which tool to choose?
The key factors
● Ruby on Rails server
● Cross-platform support (Android, iOS)
● framework updatabil...
Calabash. Adavantages.
● Calabash Android
● Calabash iOS
● Ruby
● Gherkin Syntax (Cucumber style)
● Calabash Android last ...
Calabash iOS. Installation
# Install calabash ios gem
$ gem install calabash-cucumber
# Generate a features dir
$ bundle e...
calabash-ios gen
calabash-ios setup
● Generates calabash scheme for iOS project.
● Connects calabash.framework to our project (testing
serv...
Runnig tests. iOS
To run on physical device:
● BUNDLE_ID=com.anadea.***
● DEVICE_ENDPOINT=http://192.168.100.85:37265
The ...
Calabash Android. Installation
# Install calabash Android gem
$ gem install calabash-android
# Generate a features dir
$ b...
calabash-android gen
Running tests. Android
The launch command:
$ bundle exec calabash-android run <path_to_apk>
Duplicate ourselves
iOS
sign_up.feature
sign_up_steps.rb
sign_up_screen.rb
Android
sign_up.feature
sign_up_steps.rb
sign_u...
Design of the applications
iOS Android
WTF...
What to do?
● install gems on the server side
● split PageObject into moduls
● stick together calabash-ios & calabash-andr...
Stick
Split into moduls
Modified scheme
iOS + Android
sign_up.feature
sign_up_steps.rb
ios
sign_up_screen.rb
android
sign_up_screen.rb
The launch commands
iOS
cucumber CLIENT_PLATFORM=IOS
Android
calabash-android run <path_to_apk>
CLIENT_PLATFORM=Android
The advantages of implementation
● there is no duplicate code (*.feature, *_steps.rb)
● possibility of easy access to obje...
The disadvantages of implementation
● different launch commands (cucumber, calabash-android run)
● it is not possible to w...
Getting rid of disadvantages
CALABASHER
(include calabash-ios & calabash-android)
Visit our blog for more great tips:
anadea.info/blog
Upcoming SlideShare
Loading in …5
×

Calabash Andoird + Calabash iOS

471 views

Published on

Anadea Inc. internal mini-conference on November 5th, 2015.
Calabash Android + Calabash iOS | Kirill Machuhin | Slides

A brief report about the conference:
https://anadea.info/blog/november-5th-2015-mini-conference

Published in: Software
  • Be the first to comment

Calabash Andoird + Calabash iOS

  1. 1. Calabash Andoird + Calabash iOS automated testing of mobile applications
  2. 2. Is it time to automate?
  3. 3. Tools Android iOS Calabash Android Calabash iOS MonkeyTalk Frank Robotium UIAutomation Selendroid KeepItFunctional UIAutomator ios-driver
  4. 4. Which tool to choose?
  5. 5. Which tool to choose? The key factors ● Ruby on Rails server ● Cross-platform support (Android, iOS) ● framework updatability ● running on real devices
  6. 6. Calabash. Adavantages. ● Calabash Android ● Calabash iOS ● Ruby ● Gherkin Syntax (Cucumber style) ● Calabash Android last updated - 26 days ago ● Calabash iOS last updated - a month ago ● Testing on the real devices
  7. 7. Calabash iOS. Installation # Install calabash ios gem $ gem install calabash-cucumber # Generate a features dir $ bundle exec calabash-ios gen # Install calabash.framework to .xcodeproj $ calabash-ios setup
  8. 8. calabash-ios gen
  9. 9. calabash-ios setup ● Generates calabash scheme for iOS project. ● Connects calabash.framework to our project (testing server)
  10. 10. Runnig tests. iOS To run on physical device: ● BUNDLE_ID=com.anadea.*** ● DEVICE_ENDPOINT=http://192.168.100.85:37265 The launch command: $ bundle exec cucumber
  11. 11. Calabash Android. Installation # Install calabash Android gem $ gem install calabash-android # Generate a features dir $ bundle exec calabash-android gen
  12. 12. calabash-android gen
  13. 13. Running tests. Android The launch command: $ bundle exec calabash-android run <path_to_apk>
  14. 14. Duplicate ourselves iOS sign_up.feature sign_up_steps.rb sign_up_screen.rb Android sign_up.feature sign_up_steps.rb sign_up_screen.rb
  15. 15. Design of the applications iOS Android
  16. 16. WTF...
  17. 17. What to do? ● install gems on the server side ● split PageObject into moduls ● stick together calabash-ios & calabash-android launchers
  18. 18. Stick
  19. 19. Split into moduls
  20. 20. Modified scheme iOS + Android sign_up.feature sign_up_steps.rb ios sign_up_screen.rb android sign_up_screen.rb
  21. 21. The launch commands iOS cucumber CLIENT_PLATFORM=IOS Android calabash-android run <path_to_apk> CLIENT_PLATFORM=Android
  22. 22. The advantages of implementation ● there is no duplicate code (*.feature, *_steps.rb) ● possibility of easy access to objects via ActiveRecord ● emulation of the second client working on the server side
  23. 23. The disadvantages of implementation ● different launch commands (cucumber, calabash-android run) ● it is not possible to work in the debug mode, provided by calabash (remedy is binding.pry :) )
  24. 24. Getting rid of disadvantages CALABASHER (include calabash-ios & calabash-android)
  25. 25. Visit our blog for more great tips: anadea.info/blog

×