Appuim学习路-Appuim介绍

(学一个东西,总的知道它支持什么。为什么要选择它吧?所以我就去看github上的介绍了。发现大家介绍的来源大多来自于此)
 
Appium是一个开源的自动化框架,是跨平台的,允许所有平台使用同一套API来编写脚本
 
一、支持的平台
ios
Android
FirefoxOS
 
支持native、web,hybride应用
 
Appium对iOS和Android的支持还是有一些区别的,比如下面的表
 
支持项 ios Android
版本号 6.1、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控件的自动化 仅支持很少一部分 不支持
 
二、Appium的一些优点
1.不需要修改或编译app,使用各平台上标准的自动化API
2.支持多种脚本语言,下载个对应的client包即可。支持Java,Objective-C,JavaScript,PHP,Python,Ruby,C#,Clojure,Perl
3.开源自动化框架,所有平台使用同一套API
 
三、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的过程可以参考下面这篇文章:
 
四、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工具可以查看界面元素
 
概念参考文档:
原文地址:https://www.cnblogs.com/meitian/p/5698962.html