(学一个东西,总的知道它支持什么。为什么要选择它吧?所以我就去看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. bzoj1825: [JSOI2010]蔬菜庆典

    Description Input Output 对于每组数据,输出一行.若蔬菜的总价能无限制增大,输出"+inf"(不含引号).否则输出一个整数,表示所有蔬菜的最大总价.   首 ...

  2. JavaScript之图片操作1

    在网页中,经常需要对图片经常各种操作,包括切换,轮播等等,接下来将总结一些常见的图片操作,首先是最简单前后切换. 如上面所示,通过点击右边的按钮切换左边的图片,为了实现想要的效果,首先,我们需要在ht ...

  3. 自己写的 Readini 类

    using System; using System.IO; using System.Runtime.InteropServices; using System.Text; using System ...

  4. CSS border边框属性教程(color style)

    CSS 边框即CSS border-border边框样式颜色.边框样式.边框宽度的语法结构与应用案例教程篇 一.CSS 边框基础知识 CSS 边框即CSS border是控制对象的边框边线宽度.颜色. ...

  5. PHP使用mysqli扩展连接MySQL数据库

    这篇文章主要介绍了PHP使用mysqli扩展连接MySQL数据库,需要的朋友可以参考下 1.面向对象的使用方式 $db = new mysqli('localhost', 'root', '12345 ...

  6. python之路之迭代器与生成器

    一  迭代器 那么在研究迭代器之前首先应该要知道什么是迭代. 迭代:是一个重复的过程,并且每次重复都是建立基于上一次的结果而来的,所以在迭代的过程其实是在不断变化的. 迭代器:就是迭代取值的工具. 那 ...

  7. CSS 3 学习笔记

    css 3 学习笔记 文本: word-wrap : normal | break-word取值:normal:    控制连续文本换行.break-word:    内容将在边界内换行.如果需要,词 ...

  8. UVA-550

    题意 输入进制数n,第一个乘数的最后一位m,第二个乘数k,乘法的结果为mk, mk的第一位是m,求此时mk的长度 #include<iostream> #include <stdio ...

  9. Django静态图片参数解析

    使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出来了.特记录下来. 关键的概念:Django中,静态资源的存 ...

  10. python入门-存储数据

    这里的存储数据使用json格式 json   是javascript object notation的意思  javascript的对象标记 1 写入 json.dump import json nu ...