Appium:
1.完全使用webDriver作为通信协议,大部分API与selenium一样。
2.体系架构与selenium非常类型
安装*面版Appium Server
由于Appium本身是基于Node.js开发的一个WebDriver服务器端应用程序。所以除了使用自带界面的
Appium Desktop Server外,我们还可以使用Node.js的npm程序直接安装Appium的原生Server,并通过
命令行来启动服务器或者配置需要的参数,操作步骤如下:
1)在Node.js官网”https://nodejs.org.en“下载最新版本的Node.js并完成安装
2)在操作系统环境变量中将Node.js的安装目录配置到Path变量中,便于方便执行关系命令
3)打开命令行程序,运行命令“Node -v”和“npm -v”,确认安装是否成功
4)使用命令“npm install -g appium”在线安装Appium。但是由于安装过程会连接Google的国外站点,所以很有可能无法成功安装
5)使用国内镜像安装,运行如下命令:npm --registry http://registry.cnpmjs.org install -g appium
即可从国内镜像站点安装Appium
6)也可以使用镜像npm install -g appium --registry https://registry.npm.taobao.org进行安装
7)默认情况下,npm会在命令行的当前目录下安装新的模块,如果需要知道安装路径,我们可以使用命令
npm config set prefix "D:\Folder\node_modules"指定安装路径
8)运行命令 npm --registry http://registry.cnpmjs.org install -g appium-doctor 或者
npm install -g appium-doctor --registry https://registry.npm.taobao.org 安装Appium Doctor检查程序
9)为安装模块的目录,如“C:\Users\Administrator\AppData\Roaming\npm”设置到Path环境变量中,便于直接在命令行运行
Appium或Appium Doctor程序
10)在Appium安装完成后,可以通过命令Appium -v 和Appium-doctor来确认是否安装成功
11)如果通过运行Appium Doctor程序检查成功后,我们就可以启动Appium Server,默认的启动命令为Appium,如果需要停止服务器,只需要按Ctrl+C即可
12)uiautomatorviewer.bat工具的使用:使用增加版uiautomatorviewer.jar 替换原生的uiautomatorviewer.jar,目录地址:android-sdk-windows\tools\lib
13)最新版本的Appium不支持driver_find_element_by_name(‘text‘):根据元素的text属性进行识别,可以通过修改源代码解决该问题,修改文件C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\build\lib\driver.js,找到this.locatorStrategies = [‘xpath‘, ‘id‘, ‘class name‘, ‘accessibility id‘, ‘-android uiautomator‘],改为this.locatorStrategies = [‘xpath‘, ‘id‘, ‘class name‘, ‘accessibility id‘, ‘-android uiautomator‘,‘name‘];
14)Appium参数:
#第一件事情:配置Appium兼容性参数-> Android/ios ,Android有不同版本等
desired_caps = {} #定义webdriver的兼容性设置字段对象用于设置核心参数
desired_caps["platformName"] = ‘Android‘ # 指定测试Android平台
desired_caps[‘platformVersion‘] = ‘5.1.1‘ # 指定移动设备版本号
desired_caps[‘deviceName‘] = ‘Appium‘ # 指定设备名称
desired_caps[‘unicodeKeyboard‘] = ‘true‘ #支持输入中文
desired_caps[‘app‘]= ‘路径‘ # 应用安装过可以不用改参数
desired_caps[‘appPackage‘] = ‘com.miui.calculator‘ # 指定要启动的包
desired_caps[‘appActivity‘] = ‘.cal.CalculatorActivity‘ # 指定启动的主类程序
desired_caps[‘udid‘] = ‘127.0.0.1:62001‘ # 指定设备编号(adb devices 输出结果)
Uiautomator2:
针对App移动端的测试开发,除了使用Appium之外,基于Python语言上还有第二个选择,那就是UIAutomator2这套测试框架。
UIAutomator2是一个可以使用Python对Android设备进行UI自动化的库,其底层基于Google Uiautomator测试库2.0版本,该库可以获取屏幕上任意一个App的任意一个控件属性,并对其进行任意操作,但是是基于Java语言编写的。所以UIAutomator2测试框架可以很好第帮助我们利用Python语言编写类似于Appium的自动化测试脚本。
1、安装UIAutomator2
pip install --pre uiautomator2 #uiautomator2核心库
pip install pillow #Python的图像处理库
2、初始化移动端
确保电脑端已经成功连接到一台移动设备,可以通过adb devices命令成功查看到该设备列表为准。执行如下命令可以在移动端安装uiautomator-server、atx-agent等应用程序,便于移动端与Python代码进行通信以执行自动化测试脚本。
Python -m uiautomator2 init