Testing Native iOS Apps with Appium
 

Testing Native iOS Apps with Appium

on

  • 9,266 views

 

Statistics

Views

Total Views
9,266
Views on SlideShare
7,215
Embed Views
2,051

Actions

Likes
6
Downloads
108
Comments
0

10 Embeds 2,051

http://sauceio.com 1939
https://stackedit.io 46
http://feeds.feedburner.com 24
http://www.newsblur.com 17
https://twitter.com 15
http://cloud.feedly.com 4
http://newsblur.com 3
http://webcache.googleusercontent.com 1
http://www.feedly.com 1
http://l.lj-toys.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Testing Native iOS Apps with Appium Testing Native iOS Apps with Appium Presentation Transcript

  • Testing Native iOSApps with AppiumDylan Lacey, Sauce Labs Inc.@DylanLacey
  • What is Appium?+
  • Framework for Automating Browsers fortestingUses actual Browsers, ergo functions likea real user (mostly)Can run locally or remotely•••Selenium
  • Appium is a SeleniumServer for iOSNative app controls are kinda webcontrolsFind things, click them, assert on contentRun your tests under automation•••
  • Rubyists Testing
  • iOS Testing
  • ...Wat?TESTAPPIUMSelenium Instruments.js
  • You’re Lying. Show usCodedriver = Selenium::Webdriver.for( :remote, {:desired_capabilities =>{:browserName => ‘iOS’,:platform => ‘Mac’,:version => ‘6.0’,:app => ABSOLUTE_APP_PATH},:url => “http://127.0.0.1:4723/wd/hub”})
  • Example - Find, Valuesrequire selenium-webdriverinclude Selenium::WebDriver::DriverExtensions::HasInputDevicesinclude Selenium::WebDriver::DriverExtensions::HasTouchScreenrows = driver.find_elements(:tag_name, "tableCell")rows[0].attribute(:name).should eq "Buttons, Various uses ofUIButton"third_row = driver.find_elements(:tag_name, "tableCell")[2]third_row.location.y.should be 152
  • Example - Interaction@driver.find_elements(:tag_name, "tableCell")[9].click@switch = @driver.find_element(:tag_name, "switch")@switch.displayed?.should be_true@switch.attribute("value").should be 0@switch.click@switch.attribute("value").should be 1@text_field = @driver.find_element(:tag_name, "textField")@text_field.send_keys("discombobulate")@text_field.attribute("value").should eq "discombobulate"
  • Example - Scrollingrow = @driver.find_elements(:tag_name, "tableCell")[2]initial_location = row.locationaction = @driver.touch.flick(0, 20)action.performinitial_location.should_not eq row.location
  • Demo
  • Host RemotelyBeing a server, you can host tests onremote machinesConnect them to a GridRun them in parallelPay someone else to bother••••
  • Gif because I feel leftout
  • Thanks for Listening;Have free sh... stuffAppium Site: Appium.ioFree Sauce Labs minutes: RailsConf13PSST: Totally free for FOSS projectsHit me up with Questions: @dylanlaceyor dylan@saucelabs.com••••