第一章 导言
1.1 编制目的
该文档为选用Appium作为移动设备原生(Native)、混合(Hybrid)、移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员、开发人员等提供参考。
1.2 预期读者
自动化测试人员、测试代表、开发人员等。
第二章 概述
2.1 Appium设计哲学
2.2 Appium技术框架(C/S 框架)
Appium的核心是一个暴露了一系列REST API的Server。这个server的主要功能:监听一个端口,然后接收由client发送来的命令(command)。解析这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给server, server再把执行结果返回给client。
client就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。
这样的设计思想带来了一些好处:
1)多语言的支持;
2)可把server放在任意机器上,支持云测试;
图1 Appium架构
图2 Appium Android模型
图3 AppiumiOS模型
2.3 Appium Server/Client
Appium Server即服务器,连接Appium客户端和移动设备。原生的webdriverapi为web端设计,因此扩展到移动端要拓展。Appium官方提供了一套appium client,涵盖多种语言ruby/java/python等。
2.4 会话Session
在webdriver/appium,所有测试都必须在Appium Server和移动设备之间创建会话(Session)后才可以进行。一般来说,通过POST/session这个URL,然后传入会话属性(Desired Capabilities)就可以开启会话了。开启会话后,会返回一个全局唯一的会话ID(session id),之后几乎所有的请求都基于该会话ID,该会话ID代表了你所打开的浏览器或者是移动设备的模拟器,连接执行机器和移动设备。由于每个移动设备的连接会话ID是全局唯一的,那么在同一台机器上启动多个会话就变成了可能,这使多移动设备的并发测试成为可能。
会话属性(Desired Capabilities)包含会话配置信息,以key-value形式存在,可以理解成是java里的map,python里的字典,ruby里的hash以及javascript里的json对象(实际上,Appium Server和移动设备之间的会话属性就是通过json对象传输)
第三章 Appium安装
Appium Windows版仅支持Android设备(手机),Appium Mac版同时支持Android和iOS设备(手机)。
3.1 Windows版安装(64位)
3.1.1 软件列表
1)JDK> 1.6
2)vcredist_x86_c++
3).Net Framework > 4.0
3)Android Developer Tools(ADT-Bundle-windows-x86-64)
4)Appium for windows(最新版1.4.16.1)
5) Appium client(根据使用的语言安装一种即可:Java/Python/Ruby等),对于Java客户端,还需要Selenium包selenium-java-2.46.0.jar , selenium-server-standalone-2.46.0.jar,python的是Appium-python-client(就是一个python类库)
6)Android手机驱动(for windows),windows必须安装任意一个Android手机驱动,否则,adb无法检测无设备。
3.1.2 安装过程
按照JDK、vcredist_x86_c++、.NET Framework、Appium的顺序安装好各软件,ADT直接下载就可以用无需安装
1)JDK安装:设置系统环境变量JAVA_HOME为JDK安装路径:(Java安装和环境变量配置,自行百度)
2)vcredist_x86_c++安装:百度下载vcredist_x86_c++.exe文件,双击安装即可。
3).NET Framework安装:百度一个大于4.0版本的.NET Framework.exe文件。双击安装即可。
4)Appium服务端安装:下一个Appium for windows 1.4.16版本,双击安装即可。(注:Appium分为客服端和服务端,服务端就是Appium工具,又可以分为GUI版本和终端版本。GUI版本是可视化的图像界面工具,终端版本是在终端启动的一个服务而已。客服端就是针对python、java、ruby等语言开发的类库)
5)ADB安装:ADB是ADT的一个工具,所以,在要下一个ADT的安装包(免安装的)解压即可。然后,设置系统环境变量ANDROID_HOME为ADT所在目录(比如D:\Mobile-AutoTest-Software\adt-bundle-windows-x86_64-20130917\sdk),同时把并把ADT里的tools和platform-tools两个目录加入到系统的 Path路径里:注意:adb需要安装adb驱动,一般手机驱动自带adb驱动,所以只要安装一个手机驱动即可
adb安装成功后在终端输入adb devices会弹出PC端连接的设备的udid
6)python安装:下一个python2.7的安装包,双击安装即可。如果需要通过python安装相关的python类库,还要安装pypa-setuptools、pip等工具。
7)Appium客服端安装:安装Appium Client(客户端只需安装一个,比如Python的或者Java的)这里以python为例:
1、需首先安装Python、pypa-setuptools、pip等Python环境(安装过程自行百度),然后通过pip在线(PC需联网)安装Selenium及Python客户端(cmd下切换到Python安装目录C:\Python27\Lib\site-packages\后执行):
python pip install Selenium
python pip install Appium-Python-Client
2、设置环境变量,把Python的目录加到系统的Path路径里
小提示:
安装Appium-Python-Client客户端时有时会遇到setuptools版本问题,运行python pip install –upgrade setuptools升级后再安装:
如果机器没联网,下载Selenium和Appium-Python-Client,并解压把整个目录放到Python安装目录(一般是C:\Python27\Lib\site-packages 目录下),如下图(selenium-2.53.1目录下py目录的selenium目录拷贝到上面的site-packages目录)
Java客户端可直接下载Jar包(比如java-client-3.2.0.jar),在Java工程中添加Jar即可。
其他客户端安装【略】
按照如上步骤安装好各软件后,基本环境就算完成了。启动Appum,填写被测APP路径,Platform选Android,Automation Name选Appium,PlatformVersion根据手机的Android版本选择,DeviceName选择上面adb命令识别的手机udid号;Server地址和端口保持默认:
配置上面两项内容后,点击启动按钮,看到最后一行信息及表示启动成功:
3.2 Mac版安装
3.2.1 软件列表
Mac Pro (OS X 10.10.3)
JDK > 1.6
Appium for Mac(最新版Appium-1.4.13.dmg)
Xcode 7.X
Appium Client(Python、Java等),对于Java客户端,还需要Selenium包selenium-java-2.46.0.jar , selenium -server-standalone-2.46.0.jar
3.2.2 Appium安装过程
安装brew :终端输入ruby –e "$(curl –fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"
安装node.js:到官网http://nodejs.org下载Mac的pkg安装包,下载完成直接安装即可无需配置任何参数。在终端输入node –version 如有版本号出来这说明成功。(也可以通过brew、来安装:brew install node)
获取权限:sudo chmod –R 777 /usr/local/
安装ideviceinstaller:brew update ,brew install ideviceinstaller
安装Appium服务端:npm install –g [email protected],npm install wd(还有问题就看这篇文章:www.15yan.com/story/4GbuTwXQKDU/)
安装pip:sudo easy_install pip就行。
安装appium python client和selenium(客服端):pip install Appium-Python-Client,pip install selenium
过程和Windows基本一致,JDK安装过程自行百度,python咋Mac和Linux环境下是自带的无须安装。环境变量JAVE_HOME和ANDROID_HOME设置,并把ADT里的platform-tools和tools加到系统目录:
最后,启动Appium-doctor检查环境配置,全部打勾说明环境搭建完毕:
... ...