手機自動化測試和持續整合
TRANSCRIPT
![Page 1: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/1.jpg)
Carl Su Nov 01, 2015
![Page 2: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/2.jpg)
•
• Hacking Thursday
• CI/CD
![Page 3: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/3.jpg)
• PyCon APAC: Introduction to Robot Framework
• COSCUP 2015 Git Workflows
![Page 4: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/4.jpg)
![Page 5: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/5.jpg)
•
•
• (CI/CD)
•
![Page 6: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/6.jpg)
![Page 7: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/7.jpg)
•
•
•
•
•
![Page 8: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/8.jpg)
![Page 10: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/10.jpg)
![Page 11: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/11.jpg)
• iOS 6.0+: UIAutomation
• Android 2.3+: Instrumentation
• Android 4.2+: UiAutomator
• Firefox OS: Marionette
• etc…
![Page 12: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/12.jpg)
iOS
• UIAutomation
• JavaScript
![Page 13: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/13.jpg)
Android
• 2.3 Instrumentation
• 4.2 UiAutomator
• Java
![Page 14: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/14.jpg)
Firefox OS
• Marionette WebDriver
• Python JavaScript
![Page 15: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/15.jpg)
![Page 16: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/16.jpg)
• open source
•
• App
![Page 18: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/18.jpg)
Appium
1. App
2.
3.
4.
Java, Objective-C, JavaScript, PHP, Python, Ruby, C#, Perl
Robot Framework
![Page 19: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/19.jpg)
• App
• Web App
• App
![Page 20: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/20.jpg)
Demo
![Page 21: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/21.jpg)
![Page 22: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/22.jpg)
Appium • client-server REST API
• Selenium WebDriver JSON Wire Protocol
• TouchAction / MultiAction API
• Selenium Grid
![Page 23: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/23.jpg)
• class xpath
• Appium Inspector
• Finding and interacting with elements
![Page 24: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/24.jpg)
Appium Inspector
![Page 25: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/25.jpg)
iOS
![Page 26: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/26.jpg)
Appium
• git clone git://github.com/appium/appium.git
• ./reset.sh --ios --dev
• node .
![Page 27: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/27.jpg)
Appium Ruby Console• page • text_exact 'UICatalog'
• id('ButtonsExplain').name
• text(resolve_id('ButtonsExplain')).name
• page_class
• x
![Page 28: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/28.jpg)
• 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 30: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/30.jpg)
• git clone https://github.com/appium/tutorial.git
• rake ios[test]
![Page 31: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/31.jpg)
appium.txt• [caps]
• platformName = "iOS"
• platformVersion = "9.1"
• deviceName = "iPhone Simulator"
• app = "./<your_app>.app"
• name = "Ruby iOS Tutorial"
![Page 32: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/32.jpg)
Continuous Integration
![Page 33: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/33.jpg)
(CI)• Automated
• Build
• Continuous: CI
• Continuous integration:
• (Continuous integration, CI)
![Page 34: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/34.jpg)
Git
• GitHub Flow
• GitLab Flow
• COSCUP Git workflows
![Page 35: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/35.jpg)
Jenkins •
• Subversion, Git, Mercurial
• GitHub, GitLab, Bitbucket
![Page 36: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/36.jpg)
• Xcode Plugin
• KKBOX iOS Jenkins
• How To Build Android Apps with Jenkins
![Page 37: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/37.jpg)
• #!/bin/bash --login • cd ~/Documents/mopcon2015/
tutorial/projects/ruby_ios
• rake ios[test]
![Page 38: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/38.jpg)
Demo
![Page 39: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/39.jpg)
• Apple Developer ID
• (certificate) (provisioning profile)
• iPad / iPhone
• .ipa
• Xcode
![Page 40: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/40.jpg)
Appium
![Page 41: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/41.jpg)
(iOS)• session App
• Sauce Labs
• App
• UI accessibility
![Page 42: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/42.jpg)
(Android)• (< 4.2) session
App
• (< 4.2) Web App
• (< 4.2) App
• UI
![Page 43: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/43.jpg)
• appium-doctor
•
• README
• Troubleshooting Appium
![Page 44: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/44.jpg)
![Page 45: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/45.jpg)
•
•
• (CI/CD)
•
![Page 46: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/46.jpg)
Appium
1. App
2.
3.
4.
Java, Objective-C, JavaScript, PHP, Python, Ruby, C#, Perl
Robot Framework
![Page 47: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/47.jpg)
(CI)• Automated
• Build
• Continuous: CI
• Continuous integration:
![Page 48: 手機自動化測試和持續整合](https://reader031.vdocuments.site/reader031/viewer/2022020213/586fc3fa1a28aba24c8b5535/html5/thumbnails/48.jpg)
Q & A