移动端自动化测试-Windows-Android-Appium环境搭建

2017-09-14 分类:Selenium 阅读(3941) 评论(0)

第一步

安装JDK,本机如果带有1.7及以上版本的,则可忽略此安装步骤。

JDK的安装包,百度下载即可。安装完成后配置环境变量。

cmd下java -version检查环境变量是否配置成功。

 

第二步

安装Android SDK(安卓软件开发包),测试Android手机必然是要安装Android SDK。

下载地址:http://tools.android-studio.org/index.php/sdk/ (直接下载zip版本,解压至任意目录即可)

解压到任意文件夹中即可,解压后将文件夹添加到环境变量中,添加环境变量,必须创建一个名为ANDROID_HOME的变量。

双击SDK Manager,选装工具。必装:Tools文件夹下Android SDK Platform-tools和Android SDK Build-tools,Android SDK Tools可以选择是否更新,建议网速OK直接更新。镜像:随便选个版本,喜欢啥版本选啥版本(大师兄安装的是 Android 5.0.1)。Google翻墙安装:Extras文件夹下所有的全部安装。(注:找个能翻墙的地方下载,东西比较多会很慢。)

Path环境变量中添加ANDROID_HOME、tools、platform-tools、build-tools目录。保存修改。

环境变量配置完成后,就需要找一个安卓手机了,连接安卓手机,并将Android手机的开发者选项-USB调试打开(注:每个型号的手机可能名称不同,大同小异,保证手机能连接上电脑即可。这里以三星手机为例。)

在CMD下执行,adb devices,出现下图样式则代表通过adb命令,获取到了连接在电脑上Android手机的UDID。

adb devices在获取连接的安卓手机时,一定会遇到很多坑,这里我们梳理下可能会遇到的坑。

1、手机USB调试一定要打开。

2、多找两根USB线,排除线的问题。

3、多换几个USB接口,排除USB个别接口不好使问题(如:3.0 与 2.0)

4、驱动程序,通过设备管理器查看是否安装驱动或驱动不是最新。(建议:下载驱动精灵,USB相关的驱动都更新下。部分安卓手机更新后会出现一个专门的adb Interface。)

5、更新adb_usb.ini文件,少数电脑不能识别Android手机时,可以将设备管理器下的Android手机的VID、PID增加到adb_usb.ini文件中。

将VID、PID中“_”后的4位数增加到adb_usb.ini下(注:adb_usb.ini默认在C盘当前用户家目录下的.android目录下)

理论上这些操作都操作一遍后,基本adb devices就可以找到Android手机了。

如果adb devices出现5037端口未被占用依旧显示获取失败,出现以下报错时。

解决方法:

第一步:

初一看应该是5037端口被占用了,一个比较常见的错误,执行命令查看5037端口被谁占用了:

netstat -ano | finder "5037"

但是神奇的事情发生了,结果是没有任何程序占用该端口。

第二步:

于是执行adb kill-server ,OK,再执行adb start-server,又提示相同的错误了,adb无法在5037端口启动。

第三步:

执行一下adb nodaemon server命令看看什么情况,这是一个比较有用的命令,一般情况下它会告诉我们哪里出问题了

adb nodaemon server

不幸的是仍然没有提示任何错误

第四步:

检查环境变量配置,没有错误

第五步:

基本排除adb本身的错误,开始定位CreateProcess failure, error 2 这个错误,查到了错误代码:

windows error code 2 means: 2 The system cannot find the file specified. ERROR_FILE_NOT_FOUND
and from the source code this is after a call to CreateProcess() and the file name is given by GetModuleFileName()

已经查证过不是环境配置的问题,所以定位为系统无法启动该文件。

第六步:

进入C:\WINDOWS\System32目录,检查adb相关文件。都是正确的。

第七步:

复制\System32目录下的adb.exe文件到C:\WINDOWS\SysWOW64 ,再次执行adb devices命令,提示缺失AdbWinApi.dll文件

再将\System32目录下的AdbWinApi.dll文件copy到C:\WINDOWS\SysWOW64,执行adb devices命令成功。

第三步

安装node.js,由于Appium的server端是node.js编写的所以需要先安装node.js。安装node.js后,可以直接通过npm安装Appium。(注:npm类似于Python的pip,一个非官方包管理器)

官方下载地址:https://nodejs.org/en/download/

根据自己的操作系统下载不同版本的node.js

node.js的安装一路傻瓜式next就可以了,注意一点,将路径改下,安装成功后会自动添加环境变量。也就是在cmd下任意目录都可以使用npm命令。

安装成功后,检测下npm是否可用,虽然安装过程中会直接将环境变量添加到PATH中,但是万一不好使呢。SO 养成检查环境的习惯。

 

第四步

安装appium服务端,可通过cmd 下输入 npm install -g appium 进行安装。(安装过程较慢,请耐心等待)

如果npm install -g appium特别慢,无法下载时,可以用国内的镜像npm --registry http://registry.cnpmjs.org install -g appium

安装如果失败可以尝试通过cnpm安装appium

通过npm命令安装cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

通过cnpm安装appium

cnpm install -g appium --no-cache

安装成功后,通过appium -v 查看当前appium版本,直接输入appium则启动appium server端。

第五步

安装appium客户端,用于抓取app上定位信息。

地址:https://github.com/appium/appium-desktop/releases/tag/v1.2.1

双击安装,安装成功后左面会有一个appium的快捷方式。

 

到这里Windows-Android-appium的所有环境就已经搭建完成了。

您可能也喜欢:

密码保护:Appium定位方式总结

ClassName Android Android的class属性对应ClassName定位方式,ClassName一般都是会重复的,可以通过index来获取需要的元素。(从0开始查找dom树中的同名class属性) iOS iOS的type属性对应CLassName定位方式,ClassName一般...

more

密码保护:下拉框处理(select)

在UI自动化测试过程中,经常会遇到一些下拉框,我们有三种可选方式来操作下拉框。 第一种方法 基于webdriver的两次click,很容易出现问题,不建议使用。(由于部分下拉框在点击一次后,失去焦点再点下一次时可能下拉框中的参数就消失了,那么就无法进行选择了,所以会出现无法定位到目标元素或目标元素不...

more

密码保护:神秘的指令链(Action Chains)

最近有很多同学私聊问我,在通过Selenium做UI自动化的时候,明明能够在DOM树内看到这个元素,但是我在通过driver click、sendkey的时候,就是点击不到或无法输入字符串。 实际上这是由于WEB中某些元素需要通过一系列连贯的操作才能处于可以点击的状态,driver提供的click方...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称

登录

忘记密码 ?

切换登录

注册