软件测试|Appium的二次开发与Appium的运行原理

简介: 软件测试|Appium的二次开发与Appium的运行原理

Appium 是一个用于移动端自动化测试的工具,支持 Android 和 iOS 平台,并且具有很好的平台兼容性。用户可以使用 Appium 进行自动化测试,提高测试效率和质量。在 Appium 的基础上进行二次开发,可以针对具体需求进行定制化开发,深入了解 Appium 的运行原理,则可以更好地优化自动化测试脚本,提高测试效率和可靠性。

Appium 的运行原理可以简单概括为:

Appium是一个开源的测试自动化框架,可用于原生、混合和移动web应用程序。它使用Webdriver协议驱动IOS、Android和Windows应用程序。

(1)Appium的优势

可以跨平台同时支持Android和IOS
可以支持多种语言,Java、Python、php、ruby等等

(2)Appium框架组成

Appium由两部分组成,Appiumclient、Appium sever,如果说整个自动化测试环境的话,还有移动设备端三个部分完成。

Appium Client

一般来说就是运行代码的部分,即我们用Python语言编写的代码(或其他支持的语言)。Appium提供的Appium client API是Appium通过拓展selenium的Webdriver协议而来的,我们编写的代码只要实现Webdriver标准协议即可。

Appium Sever

Appium Sever功能是监听接口,接收client端发送的command,然后将command转化为移动端能够识别的command,然后发送给移动设备进行操作,在等移动设备返回操作结果,将操作结果发送给client端。Appium Sever可以放在client端,也可以放在云端。Appium Sever默认的端口号是4723,用于Appium Sever监听client端的发送请求。

移动端:

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

  • Android: 4.3版本以上采用的是UIAutomator,系统自带的UI自动化测试工具。4.2及以下采用的是基于Android lnstrumentation框架实现的自动化测试工具。
  • IOS:采用的是IOS系统自带的UI自动化测试工具UIAutomation。

    Appium运行原理

  • client端也就是我们 test script是我们的webdriver测试脚本。

  • 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似,Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
  • appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来实现。
  • 最后Bootstrap将执行的结果返回给appium server。
  • appium server再将结果返回给 appium client。

image.png

Appium二次开发和Appium运行原理的关系

Appium 的二次开发和运行原理是紧密相连的。深入了解 Appium 的运行原理,可以帮助我们更好地理解它的工作原理和实现细节,从而更好地开发和优化自动化测试脚本。另一方面,进行 Appium 的二次开发则需要对 Appium 的运行原理有深入的了解,这样才能充分利用 Appium 提供的 API,实现针对特定需求的自定义功能。

例如,在 Appium 二次开发中,如果我们想要添加一个针对移动端应用中某个特定界面的某个特定元素的定制操作,我们就需要深入了解 Appium 的定位机制,以便更好地实现我们的功能。如果我们想要对 Appium 进行定制化开发,并且能够更好地理解 Appium 实现定位机制的原理,我们可以更好地利用 Appium 提供的各种功能和 API,实现我们的应用场景。

此外,通过深入了解 Appium 的运行原理和实现细节,我们还可以更好地优化自动化测试脚本。在编写自动化测试脚本时,如果我们能深入了解 Appium 的 UI 定位机制,就会有更优化版本的自动化测试脚本生成。

相关文章
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
115 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
3月前
|
芯片
LDO的原理及测试方法
一、基本结构 这是LM317芯片的核心,这个电路单元称为Bandgap Reference带隙基准源。属于模拟集成电路中的经典电路结构。 LDO拓扑结构图 常见的基本结构 利用VBE的负温度系数,而VT是正温度系数,正负温度系数抵消就的得到稳定的基准参考电压了(三极管的方程VBE=VT*In(lC/IS))。 二、测试意义 了解集成电路的内部结构对测试有意义么? 1、了解内部结构,才能更好的理解测试原理或者设计测试方案2、可以学习提升对电路结构的理解能力。 针对LM317,了解了内部简单原理,可以知道1、内部结构设计针对的是温度系数,因此可能受温度的影响,实际也是会受到温度的影
191 88
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
136 1
|
2月前
|
测试技术 Python
自动化测试项目学习笔记(一):unittest简单运行(初始化,清除,设置测试行为)
本文介绍了Python的unittest框架的基础用法,包括测试初始化(setup)、清除(tearDown)函数的使用,以及assertEqual和assertGreaterEqual等断言方法,并展示了如何创建测试用例,强调了测试函数需以test_开头才能被运行。
72 1
自动化测试项目学习笔记(一):unittest简单运行(初始化,清除,设置测试行为)
|
2月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
58 4
|
2月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
50 1
|
3月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
57 2
|
3月前
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。
|
4月前
|
Cloud Native 数据处理
项目环境测试问题之当异步任务在运行过程中抛出非预期的异常会导致后果如何解决
项目环境测试问题之当异步任务在运行过程中抛出非预期的异常会导致后果如何解决