appium是一个开源的移动自动化测试框架,通过webdriver协议驱动Android/IOS的App跨平台、支持多种编程语言,关联了webdriver(selenium)。
Appium是在手机操作系统自带的测试框架基础上实现的。Android是UIAutomator,Android 4.3之后系统自带的UI自动化测试工具。 iOS是UIAutomation(instruments框架里面的一个模板),iOS系统自带的UI自动化测试工具。
Appium的架构原理如上图所示,由客户端(Appium Client)和服务器(Appium Server)两部分组成,客户端与服务器端通过JSON协议进行通信。我们的电脑(client)上运行自动化测试脚本,调用的是webdriver的接口,appium server接收到我们client上发送过来的命令后他会将这些命令转换为UIautomator测试框架认识的命令,然后由UIautomator来在设备上执行自动化。
一、appium运行原理
(1)Appium服务器是Appium框架的核心,它是一个基于Node.js实现的HTTP服务器。Appium服务器的主要功能是接受从Appium客户端发起的连接,监听从客户端发送来的命令,将命令发送给bootstrap.jar(iOS手机为bootstrap.js)执行,并将命令的执行结果通过HTTP应答反馈给Appium客户端。
(2)Bootstrap.jar是在Android手机上运行的一个应用程序,它在手机上扮演TCP服务器的角色。当Appium服务器需要运行命令时,Appium服务器会与Bootstrap.jar建立TCP通信,并把命令发送给Bootstrap.jar;Bootstrap.jar负责运行测试命令。
(3)Appium客户端主要是指实现了Appium功能的WebDriver协议的客户端Library(库),它负责与Appium服务器建立连接,并将测试脚本的指令发送到Appium服务器。
二、appium组件
(1)Appium Server就是Appium的服务端——一个web接口服务,使用Node.js实现
(2)Appium Desktop
①appium server图形化界面,绑定(内置)了node.js,可以设置选项,启动/停止服务器,查看日志等
②可以使用Inspector查看元素的属性信息,可以和移动设备中的App进行简单的交互
(3)Appium GUI
①Appium Desktop的前身
②已经长时间未更新,2015年的AppiumForWindows_1_4_16_1.zip之后就停止更新了
(4) Appium Client
①Appium是一个C/S结构,有了服务端的肯定还有客户端
②Appium Clients就是客户端,它会给服务端Appium Server发送请求会话来执行自动化任务。
三、appium环境搭建
(1)基于Python的Appium的Windows环境搭建
安装Python35以上版本
安装PyCharm
安装配置Android SDK(JDK)
安装Android模拟器(真机)
安装Appium Desktop
安装Appium-Python-Client
(2)服务器:安装Appium Desktop 默认安装即可,如果自动下载安装.net framework失败,可以解压安装已有的安装程序
(3) 客户端:pip install Appium-Python-Client