Appium 简介

article/2025/9/23 7:32:09

1.1 Appium 概述

Appium 是一个开源、跨平台(测试程序跨平台、支持多平台上的app测试)、多语言支持的(开发语言)移动应用自动化工具。

1.1.1 测试对象

Appium 的测试对象包括:原生 app,混合 app,移动 web app(就是用手机浏览器打开的网址);

所谓原生 app,就是专门针对某一类移动设备而生的,所有界面和代码都是专门为平台设计的。比如说我们手机上自带的计算器应用,它的代码和界面,就都是用安卓开发语言 java 使用安卓开发库开发出来的。而混合 app 主要是指它的一部分是原生界面和代码,而另一部分是内嵌 web app。开在基本上打开网页浏览的 app 都是混合 app,比如微信、支付宝、开发者头条等。微信的消息界面是原生代码实现的。而打开某个朋友圈,或者打开别人发来的链接部分是 web 部分,内嵌了一个浏览器内核,由浏览器内核实现的。现在混合型 app 很多,稍微功能全一些的都需要具备网页浏览器的功能。而 web app 则完全是手机浏览器里打开的一个网址,大家可能会问,网址怎么是一个 APP ?

App 的概念其实非常广泛,现在说到 App,大家认为是手机 App。其实这样理解很狭义,App 就是应用的意思,所有的应用程序都是 App ,这里面当然也包括 web 网页应用。Web App 只能运行在浏览器里,靠浏览器解释执行。它其实就是一个触屏版的网站。

1.1.2 测试对象 App 运行平台

Appium 的测试对象运行平台包括:

iOS (就是苹果手机、平板、甚至 iWatch 等移动设备上运行的 app)
Android (就是安卓手机、平板、等移动设备上运行的 app)
Windows (就是 Windows 手机、平板灯移动设备上运行的 app,但是这种平台使用人数目前太少,少到基本可以忽略不计了。)
FirefoxOS (更少,更加可以忽略不计了)

1.1.3 测试对象 App 运行环境:

Appium 的测试对象运行环境包括:

真实设备
模拟器
真实设备大家都知道,就是苹果安卓的手机、平板等移动设备。而模拟器则是通过在 PC 或者 Mac 电脑上的软件模拟的,苹果安卓的手机、苹果等移动设备。主要是方便我们测试用的。

1.1.4 测试程序语言:

appnium 支持多种程序语言开发测试程序,基本上 Selenium 支持开发的语言,appium 都支持,比如:pyhton、java、Ruby、js、php、C# 等。

1.1.5 测试程序运行平台

appnium 支持测试程序运行在多种平台上,包括:Windows、Linux、Mac OS等。但是要注意的是,如果测试的是 iOS 应用,测试程序本身是可以运行在所有平台的,但是有 appium server 必须要运行在苹果的机器上,比如笔记本 MacBook,或者台式机 iMac。

appium server 本身是 js 开发的,也是跨平台的。但是对苹果设备的自动化,appium 依赖苹果的自动化框架,也只能运行在苹果机器上。

1.1.6 自动化原理

我们先来看一下 appium 自动化的架构图:

image.png

这幅图,包含了3个主体部分。

Test script:

这是我们的测试程序,是测试逻辑的实现部分。就像以前我们的 selenium 自动化脚本。而且和 selenium 一样,可以使用多种语言,Appium 客户端也支持多种语言。一般运行在 pc、laptop上,或者苹果笔记本,台式机。

Appium Server:

这是一个 JavaScript 代码实现的程序。是运行在 Node.js 里面的。Node.js 就是 js 程序的一个解释器,就像 Python 解释器和 python 程序的关系一样。可能有人会困惑,js不是运行在浏览器里面的吗?其实 js 是通用的语言,浏览器里面有 js 的解释器,同样可以将解释器单独拿出来作为一个程序运行 js 代码,运行的 js 代码也可以不仅仅是和 web 相关的,可以是任何目的的代码,就像 python,java 一样。

被测试 app:

运行在真实设备或者模拟器中。这个测试系统运行起来交互关系是这样的:测试程序(Test scrip),告诉 Appium Server 要做什么操作。比如要去点击界面的一个元素。怎么告诉 Appium Server ?它们之间有 http 的连接,通过 http 请求发送命令给 Appium Server ,Appium Server 接收到测试程序的命令后,再发出命令给设备上运行的控制程序(这程序由Appium Server注入到设备里面运行),控制程序调用相应自动化库里面的方法去执行界面的控制。

Android 底层自动化工具

我们看一下安卓的底层自动化工具。版本 2.3 - 4.1:使用的是 Selendriod 工具(这些系统已经很少了,可以忽略了)
4.2+:使用的是 UiAutomator,(目前 4.2+ 版本的安卓占了 90% 以上的市场份额,所以我们后面讲的都是 4.2+ 安卓版本)。

image.png

当我们执行安卓自动化应用的时候

IOS 底层自动化工具

在 IOS 9.3 版本之前,苹果使用自动化技术叫 UIAutomation。
iOS 9.3+ 以后苹果推出了 XCUITest 测试技术。
iOS 10 苹果完全去掉了以前的 UIAutomation 的技术支持。所以现在,我们要进行苹果 app 的自动化,只能使用 XUCITest。

转载自:https://www.jianshu.com/p/923dc02ef0e7


http://chatgpt.dhexx.cn/article/g7rIbWD9.shtml

相关文章

Appium 简明教程

转载:Appium 简明教程:http://www.testclass.net/appium https://www.cnblogs.com/fnng/p/4540731.html Appium 官网:http://appium.io/ Github 地址:https://github.com/appium/appium 主要包括以下几部分: appium新…

Appium框架原理和工作流程

一、Appium的框架原理 Appium是在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具是: Android4.2以后是基于UIAutomator框架实现查找注入事件,iOS是UIAutomation Appium的架构原理如图,由客户端和服务…

Selenium+Appium底层原理

selenium 从某一方面来讲其实就是一个web服务器。 我们启动webdriver服务时,会在webdriver服务里生成对应的session,只要服务启动起来了,无论什么类型的客户端,理论上只要获取到了生成的session,请求时带上此session,应该都是可以和webdriver…

appium底层实现原理解析

appium原理 转自 木木L玲 一、什么是Appium Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统…

【Appium学习总结1】----原理

Appium 是一个开源工具,用于自动化 iOS 手机、 Android 手机和 Windows 桌面平台上的原生、移动 Web 和混合应用。 appium安卓设备通信流程: 脚本-----------------> appium server-----------------> bootstrap.jar-----------------> uiauto…

Appium的使用

一、环境配置: 1、安装Node.js 2、配置JDK环境 3、配置Android SDK环境 4、安装Appium桌面版本 5、配置Python环境,安装selenium、Appium-Python-Client库 6、安装模拟器(MuMu模拟器) 环境配置参考: 这里是引用 二、使…

Appium 介绍以及工作原理

目录 1、什么是Appium:2、Appium各类组件:3、Appium理念:4、三张图了解 Appium工作原理: 1、什么是Appium: appium是一个移动端的自动化测试框架,可用于测试原生应用、移动网页应用、混合型应用&#xff0…

了解appium自动化的工作原理(uiautomator)

一、Appium加载的过程图解 Appium的原理 WebDriver script:我们的测试脚本(java or python) Appium: 会首先开启一个监听4723端口的server,接收测试脚本发送过来的对应请求,再将对应的请求发送给中间件Bo…

appium自动化的工作原理

appium自动化的工作原理 1. Appium组件 Appium Server Appium是一个C/S结构,包括Server和Client。Appium Server是Appium的服务端,作为一个Web接口服务,使用Node.js实现。 Appium Desktop Appium Server的图像界面,可设置启…

【Appium系列】- 框架原理

目录 简介 Appium支持哪些平台呢? Appium架构 Session Desired Capabilities 简介 Appium是一个跨平台的开源的自动化测试工具,可以用于测试不同类型的移动端应用程序(Appium基础之App类型),这是一个非常优秀好用…

Appium学习日记(一)——Appium工作原理及其主要组件

Appium工作原理及其主要组件 Appium的工作原理(how Appium works) Appium的核心是一个服务器,它侦听符合API规范WebDriver的传入HTTP请求。对于那些过去使用Selenium为基于浏览器的应用程序进行测试自动化的人来说,这听起来可能已经很熟悉了。   WebD…

Appium详解

一、Appium安装 1、安装JDK(1.8.0)并配置环境 1、JDK文件下载安装下载JDK文件,点击运行安装2、配置环境(1)新建一个名为“JAVA_HOME”的环境变量,变量值为JDK的安装路径(2)选择Path…

appium工作原理详讲

appium简介 appium是一个移动端自动化框架,它采用C/S的设计模式,支持多类开发语言(java python js c#…)、支持多平台(ios android),支持跨平台使用(windows linux)。它适用于原生或混合移动应用; appium…

Appium自动化测试基础 — APPium基本原理

1、APPium自动化测试架构 APPium是一个C/S架构的自动化测试框架,APPium的核心其实是一个暴露了一系列REST API的server。(也就是Appium的核心是一个提供了一组REST API的Web服务器。) 这个server的功能其实很简单:监听一个端口&a…

Appium的工作原理终于搞清楚了

目录 1. Appium简介 1.1 Appium的理念 1.2 Appium 的设计 1.3 Appium 的概念 2. Appium原理架构 3. appium的工作流程 4. Appium-Uiautomator2-Server 4.1 Appium-Uiautomator2-Server简介 4.2 appium-uiautomator2-server运行原理 4.3 bootstrap vs appium-uiautoma…

APP自动化测试系列之Appium介绍及运行原理

在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。 一、Appium介绍 1.Appium概念 Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动IOS&#xf…

Appium工作原理

一、Appium工作原理 1、Appium启动的时候,会创建一个http\\127.0.0.1:4723\wd\hub服务端(中转站) 2、4723端口接收client(也就是测试脚本)发来的请求,解析对应的请求 3、appium server把对应的请求发给bootstrap.jar,它…

蓝桥杯C/C++ 基础练习 十六进制转八进制 C语言

题目: 分析: 思路:先将十六进制转为二进制,然后将二进制转为八进制 遇到的问题如下: 1、输入格式和输出格式,决定了需要用数组存储十六进制数、二进制数以及八进制数。由于有多个字符串(多位…

蓝桥杯——十六进制转八进制(Java解法)

这道题其实挺难的,之前做过一次,用的十六进制转化为十进制,然后用十进制再转化为八进制,代码很简单,用的jdk上自带的进制转换进行换算。 import java.util.Scanner; /** * author 作者 E-mail: WYJ 1627407425qq.com…

蓝桥杯-十六进制转八进制(Java)

蓝桥杯-十六进制转八进制(Java) 最近在练习算法题,打算应付一下下学期的蓝桥杯,写写博客记录一下我的学习过程,对算法感兴趣的朋友可以给小编点点关注(重要的事情加上强调标志,o( ̄︶ ̄)o),这个假…