Appium是移动端的自动化测试工具,类似于前面所说的Selenium,利用它可以驱动Android、iOS等设备完成自动化测试,比如模拟点击、滑动、输入等操作,其官方网站为:http://appium.io/。本节中,我们就来了解一下Appium的安装及使用。
Appium负责驱动移动端来完成一系列操作,对于iOS设备来说,它使用苹果的UIAutomation来实现驱动;对于Android来说,它使用UIAutomator和Selendroid来实现驱动。
同时Appium也相当于一个服务器,我们可以向它发送一些操作指令,它会根据不同的指令对移动设备进行驱动,以完成不同的动作。
安装Appium有两种方式,一种是直接下载安装包Appium Desktop来安装,另一种是通过Node.js来安装,下面我们介绍一下这两种安装方式。
Appium Desktop支持全平台的安装,我们直接从GitHub的Releases里面安装即可,链接为https://github.com/appium/appium-desktop/releases。目前的最新版本是1.12.1,下载页面如图所示。
Windows平台可以下载exe安装包appium-windows-1.12.1.exe,也可下载appium-desktop-1.12.1-x64.nsis.7z,直接解压即可使用,Mac平台可以下载dmg安装包如appium-mac-1.12.1.dmg,Linux平台可以选择下载源码,但是更推荐用Node.js安装方式。
安装完成后运行,看到的页面如图所示。
如果出现此页面,则证明安装成功。
首先需要安装Node.js,具体的安装方式可以参见https://www.cdsy.xyz/computer/programme/js/230221/cd40730.html,安装完成之后就可以使用npm命令了。
接下来,使用npm命令全局安装Appium即可:
npm install -g appium
此时等待命令执行完成即可,这样就成功安装了Appium。
appium连接模拟器或真机需安装一下依赖
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
添加环境变量
JAVA_HOME:D:\soft\java\jdk
%JAVA_HOME%\lib
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
下载地址:http://www.androiddevtools.cn/ 选择SDK Tools
安装成功后添加环境变量:
ANDROID_HOME:D:\soft\android-sdk-windows
%ANDROID_HOME%\tools
%ANDROID_HOME%\tools\bin
%ANDROID_HOME%\platform-tools
如果通过这种方式安装了,下面相应的就不用重复安装了
双击运行SDK manager.exe,Android SDK Manage负责下载或更新不同版本的SDK包,默认安装的Android SDK Manager只安装了一个版本的sdk tools。
启动SDK Manager,如图所示:
几个必须要安装的,Tools文件夹里面的Android SDK Tools,然后就是Android SDK Platform-tools和Android SDKBuild-tools,只需要下载最新的版本。
然后就是API的选择了。因为Android是向下兼容的。所以只选择了下载当前最新的Android API。如果以后不打算用模拟器调试,而是一直用真机来调试的话,那么就可以不用装“system images“了。
最后就是extras文件夹中的东西了,如下图所示,
extras中的东西可以只安装上图中的三个,即Android Support Repository、Android SupportLibrary和Google USB Driver。
接下来就可以进行安装了。要注意,由于这些东西都是在google 的服务器上下载的。所以可能出现连接不上的情况,如下图:
这种时候,我们可以通过有Android SDK的国内镜像服务器来下载安装,这里推荐几个:
1、中科院开源协会镜像站地址:
IPV4/IPV6 :https://mirrors.opencas.ac.cn 端口:80
2、北京化工大学镜像服务器地址:
IPv4: https://ubuntu.buct.edu.cn/ 端口:80
IPv4: https://ubuntu.buct.cn/ 端口:80
IPv6: https://ubuntu.buct6.edu.cn/ 端口:80
3、大连东软信息学院镜像服务器地址:
https://mirrors.neusoft.edu.cn 端口:80
这里我选择的是大连东软的镜像,使用方法如下:
首先,点击菜单中的“Tools”,然后选择下拉中的“Options…”,
然后在弹出的对话框中,填写HTTP Proxy Server为mirrors.neusoft.edu.cn(镜像服务器的地址,注意前面不要加http),然后填写HTTP Proxy Port为80 (端口号)。最后在勾选下面的Forcehttps://... sources to be fetched using https://...复选框,如下图所示
接着点击close,关闭对话框,再重新启动SDK Manager就行啦。
下载安装过程后,之前选中安装的项目后面的状态都由之前的“Not installed”变为了如今的“Installed”,这就表示我们已经安装成功了!
然后我们可以检验一下Android SDK是否安装成功:在命令行窗口中输入”adb version“,出现如下显示,则安装成功了:
下载:http://www.androiddevtools.cn/ 选择platform-tools,解压到sdk安装目录下
添加环境变量:%ANDROID_HOME%\platform-tools
注意:在platform-tools里也有adb.exe,所以安卓sdk的环境变量要在模拟器的上面,才会使用安卓的SDK
这是Android开发所需的Build-Tools,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/build-tools 文件夹即可。
下载地址:https://www.androiddevtools.cn/
这是Android开发所需的sdk,下载并解压后,将解压出的整个文件夹复制或者移动到 your sdk 路径/platforms文件夹,然后打开SDK Manager,打开 Tools(工具)菜单选择 Options(选项)菜单项打开Android SDK Manager Setting对话框,点击 Clear Cache(清除缓存)按钮,然后重启Eclipse(或Android Studio)和SDK Manager。
如果你已经搭建好Appium的环境后,接下来想对一款APP的进行自动化测试的话。那么首先得让appium连接你的模拟器或者真机。才能开展测试。本文尝试用不同的方式搭建连接。以适应不同人群的选择。希望有一种方法能够适合你。
网易的Mumu模拟器算是比较好用的,安装之后想要连接Android studio必须要配置一下:
第一步:在Mumu的安装目录下找到adb_server.exe,双击运行,具体目录如下:
第二步:我这里没有在系统环境上配置adb,所以先进入自己当前电脑下XX\Android\sdk\platform-tools的目录,XX是自己放Android目录的路径;
第三步:shift+鼠标右键选择在此处打开命令窗口,也可以在cmd直接cd进入当前目录;
第四步:在cmd上 执行 adb connect 127.0.0.1:7555,然后再执行 adb devices
断开设备连接
adb kill-server //结束adb服务
adb start-server //启动adb服务
adb devices //获取adb设备列
这样在Android studio上就可以发现mumu模拟器了
有时候我们可能不太想用真机或者android sdk中自带的模拟器。而是使用一些三方的android模拟器。例如夜神,逍遥等等
理论上来说可以使用连接真机的方式一样来尝试连接。以下案例使用夜神模拟器来做演示
首先将模拟器的安装路径C:\soft\ysmnq\Nox\bin,bin目录添加到环境变量path中,在这个bin目录里,有adb.exe 和 nox_adb.exe
C:\soft\ysmnq\Nox\bin>adb.exe version
Android Debug Bridge version 1.0.36
Revision 0e9850346394-android
C:\Users\WYXCz>nox_adb version
Android Debug Bridge version 1.0.36
Revision 0e9850346394-android
上边这些是模拟器的version
通过adb查看连接设备;在cmd终端中输入adb devices查询
如果模拟器未开启
C:\Users\WYXCz>adb devices
List of devices attached
如果模拟器开启
C:\Users\WYXCz>adb devices
List of devices attached
127.0.0.1:62001 device
此时是模拟器的adb 自动连接,并不是安卓的adb连接的。
1)使用安卓的adb连接到夜神模拟器
连接方式是:nox_adb.exe connect 127.0.0.1:62001
如果模拟器未开启
C:\Users\WYXCz>nox_adb.exe connect 127.0.0.1:62001
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
unable to connect to 127.0.0.1:62001:62001
C:\Users\WYXCz>adb devices
List of devices attached
下面开启模拟器
C:\Users\WYXCz>nox_adb.exe connect 127.0.0.1:62001
adb server version (32) doesn't match this client (36); killing...
* daemon started successfully *
unable to connect to 127.0.0.1:62001: cannot connect to 127.0.0.1:62001: 由于目标计算机积极拒绝,无法连接。 (10061)
这里是因为安卓的SDK的adb版本和模拟器的版本不一致导致的,
C:\Users\WYXCz>adb version
Android Debug Bridge version 1.0.32
解决办法:
a、关掉模拟器。同时去任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉。
b、找到SDK的目录和夜神模拟器的目录,将SDK目录下的adb.exe文件,复制到夜神模拟器的目录下,因为夜神模拟器目录下原本的adb文件名字叫做nox_adb.exe,因此复制过去之后也得改名为nox_adb.exe。
重启模拟器
C:\Users\WYXCz>nox_adb.exe connect 127.0.0.1:62001
already connected to 127.0.0.1:62001
所以其udid就是127.0.0.1:62001
C:\Users\WYXCz>adb devices
List of devices attached
127.0.0.1:62001 device
AVD的全称为:Android Virtual Device,是Android的虚拟设备(模拟器),使用模拟器进行调试,不用实时连到物理设备上测试,方便调试。
可以通过命令行创建和启动AVD,也可以运行AVD Manager.exe来创建和启动AVD。
1. 官网下载(需翻墙):http://developer.android.com/sdk/index.html
2. 其他下载地址:http://www.androiddevtools.cn/
1.双击启动 AVD Manager,进入配置界面
2.点 Create 按钮创建
3.3.配置模拟器基本信息
–AVD Name:设备名称,自己定义一个,用英文(不要用中文)
–Device:设备型号,如下图选项意思是,4.7 寸手机,768*1280 分辨率,屏幕密度:xhdpi
–Target:选对应 API 版本号,Android 版本号 4.4.2,对应 API 版本 19
–CPU/ABI:cpu 型号
–Keyboard:这个最好勾选,带键盘按钮
–Skin:皮肤设置,随意设置
–Front Camera:前置摄像头,设置为 None
–Back Camera:后置摄像头,设置为 None
–Memory Option :RAM 运行内存,设置 512 就行,VM Heap 这个是 app 的运行内存默认设置的 64 就行
–Internal Storage:手机本身的存储卡大小
–SD Card:外部 SD 卡的内存
4.设置好后点 OK 保存,弹出以下界面说明保存成功
5.选中上面创建成功的模拟器,点 start 按钮,然后点 Launch 按钮就能启动了
6.接下来就是耐心等待几分钟(电脑性能不好的等 5-10 分钟),运行成功出现,如下界面
7.看到上面这个界面说明启动成功了,然后跟平常操作手机一样点点点了
到这里模拟器就启动成功了,这样替代了真机连数据线去连电脑了.(当然,有Android手机的童靴也可以直接用真机来测试)
实际开发的过程中我们可能是直接拿真机来调试。所以Appium如何连接真机呢?原理上和上述方式一致。但真机会稍微复杂一点
1)打开手机的USB调试模式
不同的手机打开调试模式的方式不同。一般都在设置中的开发者模式中打开
2)手机连接电脑
使用数据线连接手机与电脑,然后在cmd中输入adb devices查看是否连接成功
新手可能会出现两个问题
一是输入adb命令时提示不是内部命令或者外部命令
那么你需要下载一个adb工具包,把文件位置添加到path变量中(必须强调:与sdk中的adb工具包版本一致!!!!)
二是需要打开手机的usb调试模式并安装好驱动
之后在cmd中输入adb devices 提示如下图则成功
如果我们要使用Android设备做App抓取的话,还需要下载和配置Android SDK,这里推荐直接安装Android Studio,其下载地址为https://developer.android.com/studio/index.html?hl=zh-cn。下载后直接安装即可。
然后,我们还需要下载Android SDK。直接打开首选项里面的Android SDK设置页面,勾选要安装的SDK版本,点击OK按钮即可下载和安装勾选的SDK版本,如图1-73所示。
另外,还需要配置一下环境变量,添加ANDROID_HOME为Android SDK所在路径,然后再添加SDK文件夹下的tools和platform-tools文件夹到PATH中。
更详细的配置可以参考Android Studio的官方文档:https://developer.android.com/studio/intro/index.html。
首先需要声明的是,Appium是一个做自动化测试的工具,用它来测试我们自己开发的App是完全没问题的,因为它携带的是开发证书(Development Certificate)。但如果我们想拿iOS设备来做数据爬取的话,那又是另外一回事了。一般情况下,我们做数据爬取都是使用现有的App,在iOS上一般都是通过App Store下载的,它携带的是分发证书(Distribution Certificate),而携带这种证书的应用都是禁止被测试的,所以只有获取ipa安装包再重新签名之后才可以被Appium测试,具体的方法这里不再展开阐述。
这里推荐直接使用Android来进行测试。如果你可以完成上述重签名操作,那么可以参考如下内容配置iOS开发环境。
Appium驱动iOS设备必须要在Mac下进行,Windows和Linux平台是无法完成的,所以下面介绍一下Mac平台的相关配置。
Mac平台需要的配置如下:
配置满足要求之后,执行如下命令即可配置开发依赖的一些库和工具:
xcode-select --install
这样iOS部分的开发环境就配置完成了,我们就可以用iOS模拟器来进行测试和数据抓取了。
如果想要用真机进行测试和数据抓取,还需要额外配置其他环境,具体可以参考https://github.com/appium/appium/blob/master/docs/en/drivers/ios-xcuitest-real-devices.md