IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Appium简介 -> 正文阅读

[开发测试]Appium简介

Appium 介绍

Appium是目前最热门的、做app自动化测试使用人数最多的一款主要应用于移动端的自动化测试框架,开源,支持原生、移动 web 和混合应用。

	原生应用:指那些用 ios、 android 或者 windows SDKs 编写的应用。

	移动web应用:是用移动端浏览器访问的应用( appium 支持 ios上的 safari 、chrome 和 android 上的内置浏览器)

	混合应用:带有一个「webview」的包装器——用来和 web 内容交互的原生控件(以js+native两者相互调用为主,使用 Web 技术开发然后打包进原生包装器)

Appium优点

跨平台:允许你用同样的 API 对多平台(ios、android、windows)写测试。做到在 ios、android 和 windows 测试套件之间复用代码。
多语言:python、java、ruby、php、javascript 和 c# 等等
易上手:对于有selenium经验的同学,可以快速掌握。

Appium缺点

环境难:环境搭建过程有点小小的复杂
跨应用:不支持跨应用测试,对于不同的手机,如照相等功能,需要编写不同的脚本
输入法:中文输入必须使用appium自带的输入法
局限性:只能用于UI的自动化测试

Appium 的组件

**客户端 / 服务器架构**

Appium 的核心一个是暴露 rest api 的 web 服务器。它接受来自客户端的连接,监听命令并在移动设备上执行,答复 http 响应来描述执行结果。

**会话(Session)**

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

**Desired Capabilities**

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

**Appium 服务器**

Appium 是一个用 Node.js 写的服务器。可以从源码构建安装或者从 npm 直接安装,例如:npm install -g appium

**Appium 客户端**

因为Appium是一个C/S结构,有了服务端的肯定还有客户端,Appium Clients就是客户端,它会给服务端Appium Server发送请求会话来执行自动化任务。就像我们浏览器访问网页,浏览器是客户端,通过操作发送请求服务器来获取数据。我们可以使用不同的客户端浏览器(IE,Firefox,Chrome)访问一个网站。 Appium客户端可以使用不同的语言来实现,如Python,java等。

**Appium Desktop**

1、是一个 Appium 服务器的图形界面,它适用于任何平台。它打包了 Appium 服务器运行需要的所有东西。
2、提供一个 Inspector 查看应用程序的界面元素,通过元素可以进行ui界面定位,实现自动化测试操作。

注意:Appium Desktop与Appium不同。 Appium Desktop是Appium的图形前端,带有其他工具。 Appium
Desktop以其自己的节奏发布,并拥有自己的版本控制系统。
就像国内很多定制的Android系统有自己版本号,但是都是基于一个Android系统版本封装的。版本号不一定与Andriod原生系统版本号一致。

**Appium GUI**

Appium GUI是Appium desktop的前身。 也是把Appium server封装成了一个图形界面,降低使用门槛。

注意:Windows版本在2015年的AppiumForWindows_1_4_16_1.zip之后就停止更新了。目前版本可以使用,但是封装的不是最新的Appium版本,而是1.4.16版本。如果要使用最新的桌面版需要使用Appium
Desktop

PS:使用appium环境时需要使用到以上部分组件。

Appium架构原理

Appium是在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别如下:

Android(版本≤4.3):Selendroid,基于Android Instrumentation框架实现的自动化测试工具。
Android(版本>4.3):UIAutomator,Android 4.3之后系统自带的UI自动化测试工具。
iOS:UIAutomation(instruments框架里面的一个模板),iOS系统自带的UI自动化测试工具。

Appium运行原理

1、当开启Appium服务器的同时也开启了监听端口,当我们编写好测试脚本,运行自动化脚本的时候,调用的是webdriver的接口,会向Appium Server端Post一条HTTP请求,请求内容就是根据 json wire protocol协议规定的一条JSON格式的数据。

2、Appium Server端接收到请求后,解析出JSON数据并发送到手机端

3、手机端上已经由BootStrap.jar(如果是ios则为BootStrip.js)开启的服务器监听相应的端口,BootStrap.jar在appium每个session第一次访问手机端的时候会自动安装

4、手机端接收到对应的请求后,通过BootStrap.jar翻译成UIAutomator能执行的命令,然后通过UIAutomator处理并操作APP完成测试。

客户端与服务器端通过json Wire Protocol进行通信。

在学习过程中有遇到疑问的,可以appium+python QQ群交流:980 576 512
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:41:40  更:2021-08-17 15:42:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:42:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码