码迷,mamicode.com
首页 > 移动开发 > 详细

Appium 自动化测试介绍

时间:2021-03-04 13:08:29      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:vertica   苹果   ocs   架构   target   clip   nbsp   图形   ide   

Appium 介绍

Appium 是一个开源工具,用于自动化 iOS 手机、 Android 手机和 Windows 桌面平台上的原生、移动 Web 和混合应用。「原生应用」指那些用 iOS、 Android 或者 Windows SDKs 编写的应用。「移动 Web 应用」是用移动端浏览器访问的应用( Appium 支持 iOS 上的 Safari 、Chrome 和 Android 上的内置浏览器)。「混合应用」带有一个「webview」的包装器——用来和 Web 内容交互的原生控件。类似于 Apache Cordova 或 Phonegap 项目,创建一个混合应用使得用 Web 技术开发然后打包进原生包装器创建一个混合应用变得容易了。重要的是,Appium 是跨平台的:它允许你用同样的 API 对多平台(iOS、Android、Windows)进行测试。做到在 iOS、Android 和 Windows 测试套件之间复用代码。

Appium 的概念

客户端 / 服务器架构

Appium 的核心一个是暴露 REST API 的 WEB 服务器。它接受来自客户端的连接,监听命令并在移动设备上执行,答复 HTTP 响应来描述执行结果。实际上客户端 / 服务器架构给予了我们许多可能性:我们可以使用任何有 http 客户端 API 的语言编写我们的测试代码,不过选一个 Appium 客户端程序库 用起来更为容易。我们可以把服务器放在另一台机器上,而不是执行测试的机器。我们可以编写测试代码,并依靠类似 Sauce Labs 的云服务接收和解释命令。

会话(Session)

自动化始终在一个会话的上下文中执行,这些客户端程序库以各自的方式发起与服务器的会话,但最终都会发给服务器一个 POST /session 请求,请求中包含一个被称作「预期能力(Desired Capabilities)」的 JSON 对象。这时服务器就会开启这个自动化会话,并返回一个用于发送后续命令的会话 ID。

预期能力(Desired Capabilities)

预期能力(Desired Capabilities)是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),它告诉服务器我们想要启动什么类型的自动化会话。也有许多能力(Capabilities)可以修改服务器在自动化过程中行为。例如,我们可以将 platformName 能力设置为 iOS,以告诉 Appium 我们想要 iOS 会话,而不是 Android 或者 Windows 会话。或者我们也可以设置 safariAllowPopups 能力为 true ,确保我们在 Safari 自动化会话期间可以使用 JavaScript 打开新窗口。有关 Appium 能力的完整列表,请参阅 能力文档 。

Appium 服务器

Appium 是一个用 Node.js 写的服务器。可以从源码构建安装或者从 NPM 直接安装:

$ npm install -g appium $ appium

Appium 的 beta 版本可以通过 NPM 使用 npm install -g appium@beta 指令进行安装。它是开发版本,所以可能存在破坏性的变更。在安装新版本请卸载 appium@beta (npm uninstall -g appium@beta)以获得一组干净的依赖。

Appium 客户端

有一些客户端程序库(分别在 Java、Ruby、Python、PHP、JavaScript 和 C# 中实现),它们支持 Appium 对 WebDriver 协议的扩展。你需要用这些客户端程序库代替常规的 WebDriver 客户端。你可以在这里浏览所有程序库的列表。

Appium Desktop
这有一个 Appium 服务器的图形界面封装可以下载,它适用于任何平台。它打包了 Appium 服务器运行需要的所有东西,所以你不需要为 Node 而烦恼。它们还提供一个 Inspector 使你可以查看应用程序的层级结构。这在写测试时可以派上用场。

自动化原理

我们先来看一下Appium自动化的原理图

技术图片

假如要模拟用户点击界面按钮,Appium 自动化系统的流程是这样的:

  • 自动化程序 调用客户端库相应的函数, 发送 点击元素 的指令(封装在HTTP消息里)给 Appium Server

  • Appium Server 再转发这个指令给 手机上的自动化代理

  • 手机上的自动化代理 接收到 指令后,调用手机平台的自动化库,执行点击操作,返回点击成功的结果给 Appium Server

  • Appium Server 转发给 自动化程序

  • 自动化程序了解到本操作成功后,继续后面的自动化流程

其中,自动化代理控制,使用的什么库来实现自动化的呢?

如果测试的是苹果手机, 用的是苹果的 XCUITest 框架 (IOS9.3版本以后)

如果测试的是安卓手机,用的是安卓的 UIAutomator 框架 (Android4.2以后)

这些自动化框架提供了在手机设备上运行的库,可以让程序调用这些库,像人一样自动化操控设备和APP,比如:点击、滑动,模拟各种按键消息等。

Appium 自动化测试介绍

标签:vertica   苹果   ocs   架构   target   clip   nbsp   图形   ide   

原文地址:https://www.cnblogs.com/zhaoxiaogang/p/14475618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!