博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一 APPIUM基本理论知识
阅读量:5148 次
发布时间:2019-06-13

本文共 2139 字,大约阅读时间需要 7 分钟。

本文转自:http://www.cnblogs.com/sundalian/p/5629300.html

 

1.APPIUM介绍

Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。所谓的“移动原生应用”是指那些用 iOS SDK 或者 Android SDK 写的应用。所谓的“移动web 应用”是指使用移动浏览器访问的应用(Appium 支持 iOS 上的 Safari 和 Android 上的 Chrome)。所谓的“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 天猫APP,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。

重要的是,Appium 是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android),使用不同的开发语言(JAVA,Python和Ruby等语言),使用同一套API来写自动化测试脚本,这样大大增加了 iOS 和 Android 测试代码的复用性。

 

2.APPIUM思想

为了满足移动自动化需求,Appium 遵循着一种哲学,重点体现于以下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 – 找一组元素

·/session/:sessionId/element/:id/click – 通过id找到元素之后点击元素

·/session/:sessionId/source – 获取页面源码

·/session/:sessionId/url – 获取页面url

·/session/:sessionId/timeouts/implicit_wait – 隐性等待

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

转载于:https://www.cnblogs.com/lincj/p/6001145.html

你可能感兴趣的文章
mysql ssl rsa setup_Mysql 5.7.18 加密连接mysql_ssl_rsa_setup 安装 mysql证书登陆
查看>>
mysql 代替intersect_MySQL不支持INTERSECT跟MINUS,及其替代方法
查看>>
python提交带中文post请求_Python批量发送post请求的实现代码
查看>>
redmine mysql端口_Redmine和SVN的结合
查看>>
java 数字签名_数字签名的Java签名步骤
查看>>
java容器对象_java对象容器的一点简单知识
查看>>
java键盘控制小球_Java 键盘控制一个小球
查看>>
java excel导出 poi 后缀名_Java使用poi生成Excel
查看>>
fancyupload java_FancyUpload3.0
查看>>
java高新技术-反射_Java高新技术2(反射)
查看>>
python javascript人工智能_Python和JavaScript——这两种流行的编程语言之间的主要区别是什么?...
查看>>
java重写equals_java 如何重写equals
查看>>
java方法递归_java-方法递归
查看>>
busy spin java_用java实现的peterson算法,模拟synchronized功能,算是一种无锁算法吧...
查看>>
cachecloud java_spring cache 集成 cacheCloud redis
查看>>
java poi预览word文档_apache poi操作office文档----java在线预览txt、word、ppt、execel,pdf代码...
查看>>
java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...
查看>>
java代码比较器下载_java版本号比较器
查看>>
java拦截器和切面_拦截器-过滤器-切面比较
查看>>
java采集系统源码_VideoMonitorCenterJAVA - 源码下载|多媒体|视频捕捉/采集|源代码 - 源码中国...
查看>>