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/Developerinfo 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/nodeinfo AppiumDoctor ✔ HOME is set to: /Users/userinfo AppiumDoctor ✔ ANDROID_HOME is set to: /Users/user/Library/Android/sdkinfo AppiumDoctor ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Homeinfo AppiumDoctor ✔ adb exists at: /Users/user/Library/Android/sdk/platform-tools/adbinfo AppiumDoctor ✔ android exists at: /Users/user/Library/Android/sdk/tools/androidinfo AppiumDoctor ✔ emulator exists at: /Users/user/Library/Android/sdk/tools/emulatorinfo AppiumDoctor ### Diagnostic completed, no fix needed. ###info AppiumDoctorinfo AppiumDoctor Everything looks good, bye!info AppiumDoctor
安装appium client
java的appium client配置:
io.appium java-client 3.4.1
python安装:pip install Appium-Python-Client
iOS控件定位
使用appium的inspect工具定位控件元素。需要先获取手机的udid,可以通过itunes和ideviceinfo命令行查找。