Appium自动化测试-iOS
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命令行查找。