1.Appium介绍:

Appium是一款开源跨平台(IOS和Android平台)支持多种开发语言(java、python等)进行测试Native/Web/Hybrid的Android/iOS Application的自动化测试框架,采用web driver 协议。Native(移动原生应用)指的是那些用iOS SDK或者Android SDK 写的应用;Web(移动web应用)指的是使用移动浏览器访问的应用(Appium支持iOS上的 Safari和Android上的Chrome);Hybrid(混合应用)指的是原生代码封装网页视图——原生代码和 web 内容交互。比如,像天猫APP,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用,另外Appium不但支持模拟器而且支持真机测试。

2.Appium设计思想:

2.1不需要为了自动化而且重新编译或修改测试app;

2.2 你不必局限于某种语言或者框架或者平台来书写和运行测试代码;

2.3 一个移动自动化的框架不应该在接口上重复造轮子。(移动自动化的接口应该统一);

2.4 源代码必须开源;

3.Appium名词:

·C/S 架构

Appium 的核心是一个 web 服务器,它提供了一套REST的接口。它收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在HTTP响应中返还给客户端。

·Session

自动化始终围绕一个session进行,客户端初始化一个seesion(会话)来与服务端交互,不同的语言有不同的实现方式,但是他们最终都是发送为一个POST请求给服务端,请求中包含一个JSON对象,被称作“desired capabilities”。此时,服务器客户端就会开启一个自动化的 session,然后返回一个 session ID,session ID将会被用户发送后续的命令。

·Desired Capabilities

Desired capabilities 是一些键值对的集合 (比如,一个map或者hash),客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。比如,我们可以把platformName capability 设置为 iOS,告诉 Appium 服务端,我们想要一个iOS 的session,而不是一个 Android 的。Capabilities在后续章节中还会讲解到。

·Appium Server

Appium server 是用 Node.js 写的。我们可以用源码编译或者从 NPM 直接安装。

·Appium 服务端

Appium 服务端有很多语言库 Java, Ruby, Python, PHP, JavaScript 和 C#,这些库都实现了 Appium 对 WebDriver 协议的扩展。当使用 Appium 的时候,你只需使用这些库代替常规的 WebDriver 库就可以了。

·Appium.dmg, Appium.exe

我们提供了 GUI 封装的 Appium 服务端下载,它封装了运行 Appium服务端的所有依赖,而不需要担心怎样安装Node.js。其中还包括一个Inspector工具(MAC机上才能用),可以帮助你检查应用的界面层级,这样写测试用例时更方便。

4.Selenium JSON协议

Selenium JSON协议(JSONWP)是一个传输方法,它是由WebDriver开发者开发的,这个协议是一组特定的预定义和标准化的端点,它通过RESTful API(接口测试相关)去展现。WebDriver和JSONWP的目的就是为了通过浏览器(chrome、firefox和IE)去测试web站点,APPIUM继承了移动JSONWP协议,扩展了Selenium JSON协议,它可以控制不同的移动设备的行为,比如通过session安装和卸载APP。

让我们来看几组端点:

·/session/:sessionId  - session的ID唯一标识符

·/session/:sessionId/element – 找一个元素

·/session/:sessionId/elements – 找一组元素

APPIUM在底层就是通过这些session来相互传递信息的。

Appium基础一:Appium概念的更多相关文章

  1. Appium基础:appium相关API

    1.获取信息类: 1.1 获取当前界面的组件: driver.currentActivity(); //获取当前界面的activity,可用于断言是否跳转到预期的activity 1.2 获取当前页面 ...

  2. Appium基础教程

    目录 Appium教程 Appium简介 App自动化测试工具对比 Appium实现原理 环境搭建 Andorid介绍 基本架构 常见布局/视图 基本控件 控件常见属性 Adb介绍 Adb常用命令 A ...

  3. 『与善仁』Appium基础 — 12、Appium的安装详解

    目录 (一)Appium server安装 方式一:(桌面方式:推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二:(No ...

  4. Appium基础(二)demo

    具体配置,请看上一篇 一.启动Android模拟 Start 打开如下界面:这个过程可能会有些慢,黑屏等等,请耐心等待 二.appium配置 1.点机器人图标 PlatformVersion 选19, ...

  5. Appium基础环境搭建(windows)---基于python

    1  JDK安装 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装注意:安装 ...

  6. Appium基础三:Appium实现原理

    1.web自动化测试用的selenium webdriver 是c/s模式,server端和client端是通过webdriver protocol实现的,而Appium是参考selenium开发的, ...

  7. Appium基础——需要知道的

      Appium使用平台厂商提供的自动化框架: 1.ios 苹果的UIAutomation 2.android google的UIAutomator Appium底层使用厂商提供的自动化框架,就不需要 ...

  8. 『与善仁』Appium基础 — 10、Appium基本原理

    目录 1.Appium自动化测试架构 2.Appium架构图 3.Session说明 4.Desired Capabilities说明 5.Appium Server说明 6.Appium Clien ...

  9. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

随机推荐

  1. S5pv210 HDMI 接口在 Linux 3.0.8 驱动框架解析

    作者:liukun321 咕唧咕唧 日期:2014.1.18 转载请标明作者.出处:http://blog.csdn.net/liukun321/article/details/18452663 本文 ...

  2. C#设计模式(5)——建造者模式

    一.概念 建造者模式将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示. 二.模型 三.代码实现 /// <summary> /// 建造者模式的演变 /// 省略了指挥 ...

  3. [bzoj2154]Crash的数字表格(mobius反演)

    题意:$\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^m {lcm(i,j)} } $ 解题关键: $\sum\limits_{i = 1}^n {\sum\l ...

  4. eclipse&nbsp;maven&nbsp;plugin&amp;n…

    eclipse maven plugin 插件 安装 和 配置 Posted on 2012-07-13 12:40 fancydeepin 阅读(9850) 评论(7)  编辑  收藏 所属分类:  ...

  5. Key and Certificate Conversion

    Key and Certificate Conversion Private keys and certificates can be stored in a variety of formats, ...

  6. <c和指针>学习笔记4之字符串

    1 字符串基础 NUL字节是字符串的终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包括NUL字节. (1)字符串长度 size_t strlen(char const * string)注 ...

  7. JQuery EasyUI validate 扩展

    validate 扩展js $.extend($.fn.validatebox.defaults.rules, { equals: { validator: function(value,param) ...

  8. python学习笔记10 ----网络编程

    网络编程 网络编程需要知道的概念 网络体系结构就是使用这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务需求的一种粘合剂.网络体系结构解决互质性问题彩是分层方法. ...

  9. 虚拟机vmware11装Mac ox 10.8 解决windows8.1下unlocker202 vmxsmc.exe已停止工作的问题

    转载:http://tieba.baidu.com/p/3485956366 先说说故事吧,相信很多图钉都用过VMware Workstation这个软件.我系统是win8.1up1,之前用VMwar ...

  10. Codeforces617E【莫队算法+前缀异或】

    题意: 给出一系列数,对每个查询区间,计算有多少个子区间异或为k. 思路: 可以先预处理异或前缀,一个区间[L,R]的异或值=sum[R]^sum[L-1]; 如果当前区间是[a,b],加一个右端点b ...