Native iPhone App Test
Automation with Appium
by James Eisenhauer of @hubbubhealth
ABOUT ME

James "Jim" Eisenhauer
Chief 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
                                         Test Framework



  HTTP SERVER          Test Framework
                                        Apple Instruments             APP


     APP
Integrates with Apple Instruments

                        iphone
        Appium




    Apple Instruments    APP
Utilizes the Webdriver JSON wire protocol


            Webdriver



                             iphone
             Appium




         Apple Instruments    APP
●   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 simulator
cd '/Users/qauser/Library/Application Support/iPhone Simulator/6.1/Applications/'
rm -rf *




Command Line build app
xcodebuild -sdk iphonesimulator6.1 -configuration Debug clean build




Close simulator
osascript -e 'tell app "iPhone Simulator" to quit'
THANK YOU!!!!!


Questions?

Native iphone app test automation with appium

  • 1.
    Native iPhone AppTest Automation with Appium by James Eisenhauer of @hubbubhealth
  • 2.
    ABOUT ME James "Jim"Eisenhauer Chief 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/
  • 3.
    AGENDA ● Overview ofcurrent Native Automation Framework Scene ● Intro to Appium ● Why I like Appium ● Automating a test with Appium & Selenium
  • 4.
    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
  • 5.
    FRAMEWORKS Generally 2 schools of thought Embedded HTTP server Integrate with Apple Instruments iphone iphone Test Framework HTTP SERVER Test Framework Apple Instruments APP APP
  • 6.
    Integrates with AppleInstruments iphone Appium Apple Instruments APP
  • 7.
    Utilizes the WebdriverJSON wire protocol Webdriver iphone Appium Apple Instruments APP
  • 8.
    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
  • 9.
    WHY I LIKEAPPIUM ● 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
  • 10.
    AUTOMATING WITH APPIUM * Sample code above in java for you slow people. Demo will be in Ruby
  • 11.
    DEMO ● Install ● Write a test ● Run a test
  • 12.
    Demo & CITips View app elements Reset app state (I think this was implemented in Appium this week) #uninstall app from simulator cd '/Users/qauser/Library/Application Support/iPhone Simulator/6.1/Applications/' rm -rf * Command Line build app xcodebuild -sdk iphonesimulator6.1 -configuration Debug clean build Close simulator osascript -e 'tell app "iPhone Simulator" to quit'
  • 13.