Appium的哲學
我們相信,對原生應用的自動化測試,應當不必要包含其他的SDK組件或者特別編譯您的App,並且應當可以選擇任何您喜歡的測試方法,框架和工具。基於這些出發點我們開發了Appium。現在Appium是一個開源項目,通過一系列設計和工具抉擇,鼓勵廣大開發者為社區提供多種多樣的貢獻。
Appium的結構
Appium Server
就是我們通過Appium.app/Appium.exe啟動的服務,或者命令行執行appium啟動的服務。
Appium client
每個語言下的Appium庫,例如java的io.appium.java-client庫,python的Appium-Python-Client庫等等。
Appium.app Appium.exe
以客戶端的方式執行appium的工具,appium被打包在可視化的應用內部。可以用來查找元素,還有錄制腳本,但是不推薦使用客戶端錄制腳本。
官方示例
> brew install node # get node.js
> npm install -g appium # get appium
> npm install wd # get appium client
> appium & # start appium
> node your-appium-test.js
Appium的iOS環境配置
環境准備
- Mac電腦
- iOS設備
- nodejs環境
- xcode
- iphone sdk
安裝appium
- 安裝nodejs:brew install node
- 安裝appium:npm install -g appium
- 安裝Appium.app
環境檢查
安裝appium-doctor命令:npm install -g appium-doctor,用來檢查appium的環境配置。
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor ✔ Xcode Command Line Tools are installed.
info AppiumDoctor ✔ DevToolsSecurity is enabled.
info AppiumDoctor ✔ The Authorization DB is set up properly.
info AppiumDoctor ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor ✔ HOME is set to: /Users/user
info AppiumDoctor ✔ ANDROID_HOME is set to: /Users/user/Library/Android/sdk
info AppiumDoctor ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
info AppiumDoctor ✔ adb exists at: /Users/user/Library/Android/sdk/platform-tools/adb
info AppiumDoctor ✔ android exists at: /Users/user/Library/Android/sdk/tools/android
info AppiumDoctor ✔ emulator exists at: /Users/user/Library/Android/sdk/tools/emulator
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor
安裝appium client
java的appium client配置:
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>3.4.1</version>
</dependency>
python安裝:pip install Appium-Python-Client
iOS控件定位
使用appium的inspect工具定位控件元素。需要先獲取手機的udid,可以通過itunes和ideviceinfo命令行查找。