您的位置:首页 > 移动开发

Appuim学习路-Appuim介绍

2016-07-23 16:26 274 查看
(学一个东西,总的知道它支持什么。为什么要选择它吧?所以我就去看github上的介绍了。发现大家介绍的来源大多来自于此)

Appium是一个开源的自动化框架,是跨平台的,允许所有平台使用同一套API来编写脚本

一、支持的平台
ios
Android
FirefoxOS

支持native、web,hybride应用

Appium对iOS和Android的支持还是有一些区别的,比如下面的表

支持项iosAndroid
版本号6.1、7.0、7.1Android2.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的过程可以参考下面这篇文章:
https://testerhome.com/topics/1972

四、Appium的一些概念

Session
客户端初始化一个Session与服务端交互,不同的语言有不同的实现方式。但是都是通过发送一个post请求给服务端,请求中包含“desired capabilities”的JSON对象,这时服务端会开启一个Session并返回一个Session ID,Session ID将被用在后续的命令中

Desired Capabilities
desired capabilities是一个JSON对象,包含要测试的对象的具体信息,告诉服务端我们要怎么测试,具体的选项见下面链接
https://github.com/appium/appium/blob/master/docs/cn/writing-running-appium/caps.cn.md

Appium.app,Appium.exe
提供了GUI封装的Appium服务端下载,封装了Appium需要的所有依赖,不需要安装Node.js,还包括了Inspector工具可以查看界面元素

概念参考文档:
https://github.com/appium/appium/blob/master/docs/cn/about-appium/intro.cn.md
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: