native iphone app test automation with appium
DESCRIPTION
TRANSCRIPT
Native iPhone App Test Automation with Appiumby James Eisenhauer of @hubbubhealth
ABOUT ME
James "Jim" EisenhauerChief Quality Scientist, hubbub Health
● First program written on a TRS-80 in 1978 when I was 12● Computer Science dropout with a bachelor's degree in Psychology● Java Certified & ColdFusion 5.0 Certified...yes I said ColdFusion● Alphabet Soup - MBA, PMP, ITIL, SSGB● Graduate Certificate in Software Engineering from OGI● Army Vet-Airborne Ranger V Corps Long Range Reconnaissance and Patrol● Latest Hobby is Whisky! http://jimmyswhisky.github.com/
AGENDA
● Overview of current Native Automation Framework Scene
● Intro to Appium● Why I like Appium● Automating a test with Appium & Selenium
FRAMEWORKS● Hard to keep up with what is
going on.● Apple keeps breaking
frameworks● No clear leader or best
solution● Calabash seems to be gaining
popularity
FRAMEWORKS
Generally 2 schools of thought
Embedded HTTP server Integrate with Apple Instruments
iphone iphone
HTTP SERVER
APP
APPApple Instruments
Test Framework
Test Framework
Integrates with Apple Instruments
iphone
APPApple Instruments
Appium
Utilizes the Webdriver JSON wire protocol
iphone
APPApple Instruments
Appium
Webdriver
● Open Source Project - http://www.appium.io● Sponsored by Sauce Labs and led by Jason Huggins - @hugs● Written in Node.js● Very active with multiple commits per day
WHY I LIKE APPIUM
● Uses Apple layer as integration○ forces learning apple way
■ useful if apple breaks your framework○ less likely apple will break your framework
● Uses Webdriver ○ integrates well with my web automation
framework○ nothing new to learn
● Led by Proven leader of open source projects○ this guy created Selenium so there is that..
● Has commercial backing & resources○ always nice to have paid resources on open source
projects
AUTOMATING WITH APPIUM
* Sample code above in java for you slow people. Demo will be in Ruby
DEMO
● Install● Write a test● Run a test
Demo & CI Tips
View app elements
Reset app state (I think this was implemented in Appium this week)
#uninstall app from simulatorcd '/Users/qauser/Library/Application Support/iPhone Simulator/6.1/Applications/' rm -rf *
Command Line build appxcodebuild -sdk iphonesimulator6.1 -configuration Debug clean build
Close simulatorosascript -e 'tell app "iPhone Simulator" to quit'
THANK YOU!!!!!
Questions?