Carl Su
Nov 01, 2015
•
• Hacking Thursday
• CI/CD
• PyCon APAC: Introduction to
Robot Framework
• COSCUP 2015
Git Workflows
•
•
• (CI/CD)
•
•
•
•
•
•
• 30 TDD
•
• iOS 6.0+: UIAutomation
• Android 2.3+: Instrumentation
• Android 4.2+: UiAutomator
• Firefox OS: Marionette
• etc…
iOS
• UIAutomation
• JavaScript
Android
• 2.3
Instrumentation
• 4.2 UiAutomator
• Java
Firefox OS
• Marionette WebDriver
• Python JavaScript
• open source
•
• App
Appium
1. App
2.
3.
4.
Java, Objective-C,
JavaScript, PHP,
Python, Ruby, C#,
Perl
Robot Framework
• App
• Web App
• App
Demo
Appium
• client-server REST API
• Selenium WebDriver JSON Wire
Protocol
• TouchAction / MultiAction API
• Selenium Grid
• class xpath
• Appium Inspector
• Finding and interacting
with elements
Appium Inspector
iOS
Appium
• git clone git://github.com/
appium/appium.git
• ./reset.sh --ios --dev
• node .
Appium Ruby Console
• page
• text_exact 'UICatalog'
• id('ButtonsExplain').name
• text(resolve_id('ButtonsExplain')).name
• page_class
• x
• cell_names = tags('UIATableCell').map { |cell|
cell.name }
• cell_names.each do |name|
• wait { text_exact(name).click }
• wait { text_exact name.split(',').first }
• wait { back }
• end
Page Objects
• Selenium Wiki : Page Objects
• git clone https://github.com/
appium/tutorial.git
• rake ios[test]
appium.txt
• [caps]
• platformName = "iOS"
• platformVersion = "9.1"
• deviceName = "iPhone Simulator"
• app = "./<your_app>.app"
• name = "Ruby iOS Tutorial"
Continuous Integration
(CI)
• Automated
• Build
• Continuous: CI
• Continuous integration:
• (Continuous integration, CI)
Git
• GitHub Flow
• GitLab Flow
• COSCUP
Git workflows
Jenkins
•
• Subversion, Git, Mercurial
• GitHub, GitLab,
Bitbucket
• Xcode Plugin
• KKBOX iOS
Jenkins
• How To Build Android Apps
with Jenkins
• #!/bin/bash --login
• cd ~/Documents/mopcon2015/
tutorial/projects/ruby_ios
• rake ios[test]
Demo
• Apple Developer ID
• (certificate) (provisioning
profile)
• iPad / iPhone
• .ipa
• Xcode
Appium
(iOS)
• session App
• Sauce Labs
• App
• UI accessibility
(Android)
• (< 4.2) session
App
• (< 4.2) Web App
• (< 4.2) App
• UI
• appium-doctor
•
• README
• Troubleshooting Appium
•
•
• (CI/CD)
•
Appium
1. App
2.
3.
4.
Java, Objective-C,
JavaScript, PHP,
Python, Ruby, C#,
Perl
Robot Framework
(CI)
• Automated
• Build
• Continuous: CI
• Continuous integration:
Q & A

手機自動化測試和持續整合