(学一个东西,总的知道它支持什么。为什么要选择它吧?所以我就去看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工具可以查看界面元素
 
概念参考文档:

Appuim学习路-Appuim介绍的更多相关文章

  1. 前端学习之路-CSS介绍,Html介绍,JavaScript介绍

    CSS介绍 学前端必备掌握CSS样式,css为层叠样式表,用来定义页面的显示效果,加强用户的体验乐趣,那么如何用css到html中呢? style属性方式 利用标签中的style属性来改变显示样式 & ...

  2. 人工智能深度学习Caffe框架介绍,优秀的深度学习架构

    人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...

  3. iOS学习之NSBundle介绍和使用

    iOS学习之NSBundle介绍和使用 http://blog.csdn.net/totogo2010/article/details/7672271 新建一个Single View Applicat ...

  4. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

  5. Oracle GoldenGate学习之Goldengate介绍

    Oracle GoldenGate学习之Goldengate介绍 (2012-10-02 17:07:27) 标签: 检查点 数据传输 队列 进程 分类: Goldengate Goldengate介 ...

  6. JMeter学习工具简单介绍

    JMeter学习工具简单介绍   一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态 ...

  7. 《从0到1学习Flink》—— 介绍Flink中的Stream Windows

    前言 目前有许多数据分析的场景从批处理到流处理的演变, 虽然可以将批处理作为流处理的特殊情况来处理,但是分析无穷集的流数据通常需要思维方式的转变并且具有其自己的术语(例如,"windowin ...

  8. Java并发包下锁学习第一篇:介绍及学习安排

    Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁.从今天起,凯哥将带领大家一 ...

  9. [原创]java WEB学习笔记76:Hibernate学习之路---Hibernate介绍,hibernate 环境的搭建

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. Parity 钱包启动配置

    Parity. Ethereum Client. By Wood/Paronyan/Kotewicz/Drwięga/Volf et al. Copyright 2015, 2016, 2017, 2 ...

  2. IE, Firefox下,checkbox的钩钩一旦勾上,画面再刷新,钩钩还是勾上的解决方案

    如题,IE, Firefox下,checkbox的钩钩一旦勾上,画面再刷新,钩钩还是勾上的解决方案 <input type="checkbox"  />加上属性auto ...

  3. 字符串拼接和dom回流

    以对象的角度分析  对象的两方面 属性和方法 研究对象,主要是研究对象的属性和方法 案例: <ul id="list"> <li></li> & ...

  4. Python 示例 饮水记录

    因为每天都需要喝水  这是非常重要的 目录结构: ├─bin│ │ start.py│ ││ └─__pycache__│ start.cpython-36.pyc│├─core│ │ src.py│ ...

  5. Vcenter 和ESXi License过期解决办法

    Vcenter License过期解决办法 用client连接vcenter:  KEY必须用vCenter Server 5 Standard序列号如果使用使用的“vCenter Server 5 ...

  6. [Python] Scipy and Numpy(1)

    import numpy as np #Create an array of 1*10^7 elements arr = np.arange(1e7) #Converting ndarray to l ...

  7. node使用MySQL数据库

    内容: 1.node连接数据库 2.数据库常用操作 3.数据库实例 - 用户注册.登陆 1.node连接数据库 (1)下载mysql模块 (2)使用mysql模块连接数据库 let db=mysql. ...

  8. Linux查看进程,端口,访问url

    # 查看进程# ps -ef|grep python# 终止进程# kill -9 id # 端口 netstat -ntl # 显示正在监听的tcp端口,以端口号显示 netstat -apn|gr ...

  9. python第一个爬虫的例子抓取数据到mysql,实测有数据

    python3.5 先安装库或者扩展 1 requests第三方扩展库 pip3 install requests 2 pymysql pip3 install pymysql 3 lxml pip3 ...

  10. openlayers-热地图加载(完整版及代码)

    //地圖加載function mapInit(data){ //底图// var raster = new ol.layer.Tile({// source: new ol.source.Stamen ...