目录结构
一、Appium概述
一、Appium概述
Appium是一个开源自动化测试框架,使用WebDriver协议驱动IOS/Android/Windows应用程序,可用于原生、混合、移动Web应用程序的测试
Appium优势:
①可跨平台,同时支持Android、IOS
②支持多种语言:Java/Python/PHP/Ruby等等
③配置环境简易
④与Selenium有共通之处,便于快速上手
Appium架构原理
Appium是在手机操作系统自带的测试框架基础之上实现的, 对原有的自动化测试框架进行封装改良。
Android和IOS系统上使用的工具分别如下:
Android(>4.3):UIAutomator,Android4.3之后系统自带的UI自动化测试工具
Android(≤4.3):Selendroid,基于Android Instrumentation框架实现的自动化测试工具
IOS: UIAutomation(Instruments框架里面的一个模板),IOS系统自带的UI自动化测试工具,相当于IOS封装了UIAutomation
运行原理
电脑端运行自动化测试脚本,调用的是webdriver的接口,appium server接收到电脑端发送过来的命令后会将这些命令转换为UIautomator可识别的命令,然后由UIautomator在移动设备上执行自动化测试。
Appium架构是由客户端(Appium Client)和服务器(Appium Server)两部分组成,客户端与服务端通过JSON Wire Protocol进行通信
1)Appium服务器
Appium服务器是Appium框架的核心,是基于Node.js实现的HTTP服务器,Appium服务器的主要功能是接受从Appium客户端发起的连接,监听从客户端发送来的命令,将命令发送给bootstrap.jar(IOS手机为bootstrap.js)执行,然后将命令的执行结果通过HTTP应答反馈给Appium客户端
2)Bootstrap.jar
Bootstrap.jar是在Android手机上运行的一个应用程序,它在手机上扮演TCP服务器的角色。当Appium服务器需要运行命令时, Appium服务器会与Bootstrap.jar建立TCP通信,并把命令发送给Bootstrap.jar,由Bootstrap.jar负责运行测试命令
3)Appium客户端
主要是指实现了Appium功能的WebDriver协议的客户端Library,它负责与Appium服务器建立连接,并将测试脚本的指令发送到Appium服务器。
现有的客户端Library有多种语言的实现,包括Ruby、Python、Java、JavaScript(Node.js)、 Object C、PHP、C#,而Appium的测试是在这些Library的基础之上进行开发的
二、Appium组件
Appium Server
Appium是一个C/S结构,包括Server和Client。Appium Server是Appium的服务端,作为一个Web接口服务,使用Node.js实现
Appium Desktop
Appium Server的图像界面,可设置启动or停止服务器、查看日志,可使用inspect查看应用程序的元素
Appium GUI
是Appium Desktop的前身,也是把Appium Server封装成一个图像界面
Appium Client
Appium Client作为客户端,会给服务端Appium Server端发送请求会话来执行自动化任务。类似使用浏览器访问网页,可使用不同的客户端浏览器(IE/Firefox/Chrome…)访问同一个网站,通过操作发送请求到服务器来获取数据
Appium Client可使用不同的语言来实现,如:Python/Java
Python:https://github.com/appium/python-client
Java:https://github.com/appium/java-client
三、Appium环境搭建
环境依赖:
Node.js
Appium
Appium-desktop
Appium-doctor
Appium-Python-Client
Python
JDK
Android SDK
node -v
npm -v
2. Appium安装
传送门:https://github.com/appium/appium/release