手機自動化測試和持續整合
TRANSCRIPT
Carl Su Nov 01, 2015
•
• Hacking Thursday
• CI/CD
• PyCon APAC: Introduction to Robot Framework
• COSCUP 2015 Git Workflows
•
•
• (CI/CD)
•
•
•
•
•
•
• 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
• 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