(学一个东西,总的知道它支持什么。为何要选择它吧?因此我就去看github上的介绍了。发现你们介绍的来源大多来自于此)
Appium是一个开源的自动化框架,是跨平台的,容许全部平台使用同一套API来编写脚本
1、支持的平台
ios
Android
FirefoxOS
支持native、web,hybride应用
Appium对iOS和Android的支持仍是有一些区别的,好比下面的表
支持项 |
ios |
Android |
版本号 |
6.一、7.0、7.1 |
Android2.3以上 |
支持设备 |
iPhone和ipad模拟器及真机 |
Android模拟器和真机 |
是否支持原生应用 |
支持 |
支持 |
是否支持内置移动浏览器 |
支持。真机须要安装ios-webkit-remote-debugger,且不支持Safari的原生界面 |
支持(除了使用Selendroid后台运行的状况)
chrome须要安装Chromedriver
|
是否支持同时在多个设备上进行自动化 |
不支持 |
支持,可是须要经过加参数开启另外一个端口来实现。例如`--port`,`--bootstrap-port`(或者`--selendroid-port`)或者`--chromedriver-port`。 |
是否支持在同一个session中执行多个应用的自动化 |
不支持 |
支持(除了使用Selendroid后台运行的状况) |
是否支持第三方提供应用 |
只支持模拟器上少许的第三方应用 |
支持(可是不支持Selendroid后台运行的场景) |
是否支持自定义的、非标准UI控件的自动化 |
仅支持不多一部分 |
不支持 |
2、Appium的一些优势
1.不须要修改或编译app,使用各平台上标准的自动化API
2.支持多种脚本语言,下载个对应的client包便可。支持Java,Objective-C,JavaScript,PHP,Python,Ruby,C#,Clojure,Perl
3.开源自动化框架,全部平台使用同一套API
3、Appium的设计
Appium分为server和client端,实现UI自动化的过程其实是client发送http请求到server,而后server将请求发送到手机。经过ios和Android自带的UI自动化工具进行操做,而后将结果回传给server,server再发给client。
Appium实际使用的自动化框架以下:
ios:ios的UIAutomation
Android 4.2+:Google的UIAutomator
Android 2.3+:Google的Instrumentation(实际由Selendroid支持)
说明:由于我也刚开始学习Appium,因此可能有理解不对的地方,但愿你们能够指正
Android的过程能够参考下面这篇文章:
4、Appium的一些概念
Session
客户端初始化一个Session与服务端交互,不一样的语言有不一样的实现方式。可是都是经过发送一个post请求给服务端,请求中包含“desired capabilities”的JSON对象,这时服务端会开启一个Session并返回一个Session ID,Session ID将被用在后续的命令中
Desired Capabilities
desired capabilities是一个JSON对象,包含要测试的对象的具体信息,告诉服务端咱们要怎么测试,具体的选项见下面连接
Appium.app,Appium.exe
提供了GUI封装的Appium服务端下载,封装了Appium须要的全部依赖,不须要安装Node.js,还包括了Inspector工具能够查看界面元素
概念参考文档: