SlideShare une entreprise Scribd logo
1  sur  29
eGo Creative Media Solutions
Acceptance testing
Behavior-driven development (BDD)
BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-
automation, agile methodology
What is Calabash?
Calabash provides a bridge that allows Cucumber tests to run and validate on iOS and
Android
Calabash
● Cucumber - framework that performs
tests
● Calabash – bridge to device
● Gherkin - syntax
Cucumber + Calabash & Ruby + Gherkin
Calabash’s Client-Server Model
Calabash has a Client-Server model in which the server
portion is a lightweight web server that runs on the device
and listens for a client to connect and initiate the tests.
It then communicates via JSON over HTTP
Calabash in Android
Calabash in iOS
Calabash.app
Calabash-iOS setup
calabash-ios setup
calabash-ios gen
Calabash-iOS setup
Drag calabash.framework from Finder into your project's Frameworks folder in Xcode.
Make sure that
a. Copy items into destination group's folder (if needed) is checked and
b. only your "-cal " target is checked in Add to targets.
You must also link you -cal target with CFNetwork.framework (unless your production target is already linking
with CFNetwork). To do this click on your -cal target in XCode. Click on Build Phases, expand Link Binary
with Libraries, click + to add CFNetwork.framework.
o Click on your project and select your new "-cal" target.
o Select "Build Settings".
o Ensure that "All" and not "Basic" settings are selected in "build settings".
o Find "Other Linker Flags" (you can type "other link" in the search field).
o Ensure that "Other linker flags" contains: -force_load
"$(SRCROOT)/calabash.framework/calabash" -lstdc++
Calabash-iOS setup
Calabash with Xamarin
Calabash iOS/Android gen
Config
cucumber.yml
# config/cucumber.yml
##YAML Template
android: PLATFORM=android -r features/support -r features/android/support -r
features/android/helpers -r features/step_definitions -r features/android/pages
ios: PLATFORM=ios SDK_VERSION=7.0 -r features/support -r features/ios/support -r
features/ios/helpers -r features/step_definitions -r features/ios/pages
iPhone: DEVICE=iphone
iPad: DEVICE=ipad
Test anatomy
First feature example
credit_card_validation.feature
Feature: Credit card validation.
Credit card numbers must be exactly 16 digits.
Scenario: Credit card number is to short
Given I use the native keyboard to enter "123456" into text field number 1
And I touch the "Validate" button
Then I see the text "Credit card number is to short."
First feature execution
Console Log
$ cucumberFeature: Credit card validation.
Credit card numbers must be exactly 16 digits.
Sceanario: Credit Card is too short
# features/credit_card_validation.feature:4
Given I use the native keyboard to enter "123456" into text field number 1
# calabash-cucumber-0.9.162/features/step_definitions/calabash_steps.rb:140
And I touch the "Validate" button
# calabash-cucumber-0.9.162/features/step_definitions/calabash_steps.rb:31
Then I see the text "Credit card number is to short."
# calabash-cucumber-0.9.162/features/step_definitions/calabash_steps.rb:3731
scenario (1 passed)3 steps (3 passed)0m18.035s
Second feature
Implementing the Second Scenario
Scenario: Credit card number is to long
Given I try to validate a credit card number that is 17 characters long
Then I should see the error message "Credit card number is to long."
First rough going
Step definitions
Calabash Ruby API
Calabash has a client-server architecture. The Calabash Ruby API
is the client side which communicates over HTTP with the server
that is embedded in your app via the Calabash component.
Calabash query
Uploading and Executing Tests in Test Cloud
Resources
https://github.com/calabash/calabash-ios
https://github.com/calabash/calabash-android
http://docs.xamarin.com/guides/testcloud/calabash/
http://docs.xamarin.com/guides/testcloud/calabash/calabash-predefined-steps/
http://calaba.sh/
http://cukes.info/
https://github.com/xamarin/mobile-samples
Thank You 

Contenu connexe

Similaire à eGo meetup - Сalabash in mobile automated testing

Similaire à eGo meetup - Сalabash in mobile automated testing (20)

Calabash-iOS
Calabash-iOSCalabash-iOS
Calabash-iOS
 
Android testing calabash
Android testing calabashAndroid testing calabash
Android testing calabash
 
Calabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOSCalabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOS
 
Intro to Continuous Integration at SoundCloud
Intro to Continuous Integration at SoundCloudIntro to Continuous Integration at SoundCloud
Intro to Continuous Integration at SoundCloud
 
Serverless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMServerless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLM
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In Action
 
NanoSec Conference 2019: Code Execution Analysis in Mobile Apps - Abdullah Jo...
NanoSec Conference 2019: Code Execution Analysis in Mobile Apps - Abdullah Jo...NanoSec Conference 2019: Code Execution Analysis in Mobile Apps - Abdullah Jo...
NanoSec Conference 2019: Code Execution Analysis in Mobile Apps - Abdullah Jo...
 
One APK to rule them all
One APK to rule them allOne APK to rule them all
One APK to rule them all
 
ANZ Dev Lounge Session - Feb 2017
ANZ Dev Lounge Session - Feb 2017ANZ Dev Lounge Session - Feb 2017
ANZ Dev Lounge Session - Feb 2017
 
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
Developing Native Mobile Apps Using JavaScript, ApacheCon NA 2014
 
Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)
 
Openshift operator insight
Openshift operator insightOpenshift operator insight
Openshift operator insight
 
Using java interop in your xamarin.android apps
Using java interop in your xamarin.android appsUsing java interop in your xamarin.android apps
Using java interop in your xamarin.android apps
 
Play framework
Play frameworkPlay framework
Play framework
 
Hands on the gradle
Hands on the gradleHands on the gradle
Hands on the gradle
 
Null Dubai Humla_Romansh_Yadav_Android_app_pentesting
Null Dubai Humla_Romansh_Yadav_Android_app_pentestingNull Dubai Humla_Romansh_Yadav_Android_app_pentesting
Null Dubai Humla_Romansh_Yadav_Android_app_pentesting
 
Surviving Serverless Testing: The ultimate Guide
Surviving Serverless Testing: The ultimate GuideSurviving Serverless Testing: The ultimate Guide
Surviving Serverless Testing: The ultimate Guide
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Android 101 - Introduction to Android Development
Android 101 - Introduction to Android DevelopmentAndroid 101 - Introduction to Android Development
Android 101 - Introduction to Android Development
 
Calabash my understanding
Calabash my understandingCalabash my understanding
Calabash my understanding
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

eGo meetup - Сalabash in mobile automated testing