”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Appium 与 Java:综合指南

Appium 与 Java:综合指南

发布于2024-11-08
浏览:820

您刚刚开始进行 Appium Java 移动自动化测试吗?您来对地方了!该博客是您制作第一个测试用例的指南。我们将指导您设置环境、掌握基本的 Appium 命令以及在移动应用程序上自动执行简单的操作。准备踏上你的appium移动测试之旅,一步一步!

如果您还没有,请随时浏览我们的 Appium 设置博客文章,其中我们介绍了 Appium 设置和基本命令导航。这是快速启动您的 Appium 测试冒险的绝佳资源!看看就开始你的学习吧!奠定了基础后,让我们继续构建您的第一个测试用例!

使用 Maven 构建系统在 IntelliJ 中创建项目

  • Maven 是一个基于 POM(项目对象模型)的开源构建自动化和项目管理工具。
  • 它使用项目对象模型(POM)文件来描述项目结构、依赖关系和构建配置。
  • 它用于项目构建、依赖管理和文档。
  • 它是用 Java 编写的,也可用于创建用其他语言编写的项目,例如 C#、Scala 和 Ruby。
  • Apache Maven 3.9.6 是最新版本。这是向所有用户推荐的版本。

我们可以通过执行以下操作在 IntelliJ 中构建 Maven 项目

  1. 打开 IntelliJ IDE
  2. 单击主菜单
  3. 选择文件 > 新建 > 项目
  4. 在“新建项目”弹出窗口中,提供项目名称
  5. 选择 Maven 作为构建系统
  6. 点击创建按钮。

Appium With Java: A Comprehensive Guide

使用Maven构建系统创建项目后,项目结构下会自动生成pom.xml文件

Appium With Java: A Comprehensive Guide

Pom.xml 文件将如下所示

Appium With Java: A Comprehensive Guide

  • 为了创建我们的第一个测试用例,我们需要以下依赖项
  1. java 客户端
  2. 测试
  • 在 pom.xml 文件中添加以下 Appium Java 客户端依赖项。从此 [URL](https://mvnrepository.com/).
  • 获取最新依赖项

Appium With Java: A Comprehensive Guide

  • 添加依赖后,按照以下步骤下载到本地电脑
  1. 保存 pom.xml 并通过右键单击项目并更新 Maven 内的项目来更新 Maven 项目。
  2. 保存项目后,所有依赖项开始从 Maven 存储库下载到本地计算机。
  3. 所有依赖包下载到C盘m2文件夹下。
  4. 在下载依赖项之前,Maven 首先验证这些依赖项是否已经存在于 m2 文件夹中。如果是,则 Maven 直接从那里获取,否则 Maven 下载它。
  5. 作为 appium-java 依赖项,我们可以根据需要在 pom.xml 中添加更多依赖项。

在pom.xml中配置TestNG依赖

  • 在处理Java Selenium项目时,TestNG依赖项用于将TestNG测试框架集成到项目中。

什么是 TestNG 框架?

  • TestNG 是一个 Java 开源测试自动化框架。 TestNG 提供注释、数据驱动测试、测试排序和并行测试等高级功能,帮助您更高效地组织和执行 Selenium 测试。

在 appium 移动应用程序测试中使用 TestNG 的一些好处:

  • 将测试用例分组为逻辑单元,使管理和维护测试套件变得更容易。
  • 并行运行测试,显着减少执行测试套件所需的时间。
  • TestNG 提供了多种可用于自定义测试的注解,例如 Test、@BeforeSuite、@AfterSuite、@BeforeTest、@AfterTest、@BeforeMethod 和 @AfterMethod。
  • 它支持数据驱动测试,允许您使用多个测试数据集运行相同的测试用例。
  • 比其他测试框架更好的报告和日志记录功能使您可以更轻松地识别和调试测试中的问题。
  • 要在项目配置文件 pom.xml 中包含 TestNG 依赖项,您需要在节点部分添加以下代码段

Appium With Java: A Comprehensive Guide

通过编写appium.从cmd启动appium
服务器 启动模拟器appium检查器,如我们之前的博客中所述。
在 IntelliJ 中,打开文件夹 src/main/java 并在其中创建一个新的 java 类文件,然后按如下方式编写我们的第一个测试。

让我们了解我们的第一个测试用例

  • 期望的功能:这是我们之前的appium博客中解释的一个概念。它是一种键值组合信息,它告诉Appium我们的设备,使用什么样的设备(Android),如何使用控制应用程序 (UiAutomator2),以及在哪里可以找到该应用程序。这些功能对于在测试自动化期间建立与仿真器或物理设备的连接至关重要。
  • 连接并启动:我们连接到 Appium 服务器并使用它在设备上打开应用程序。我们还设置了较短的等待时间,以防应用程序需要一些时间来加载。
  • 扮演用户: 代码通过在屏幕上查找按钮、文本字段和其他元素来充当用户。然后,它像真人一样输入文本、单击按钮并滚动列表。
  • 检查工作:最后,代码确保一切按计划进行。它获取了列表中第一个产品的标题,并将其与我们期望的产品进行比较(例如“Air Jordan 4 Retro”)。如果它们不匹配,则意味着出现问题,测试失败。
  • 下面是我们使用 Java 进行 appium 移动应用测试编写上述测试脚本的应用程序页面的屏幕截图。

Appium With Java: A Comprehensive Guide

  • 执行appium测试脚本:代码编写完成后,您可以通过右键单击测试并单击“运行”来执行/运行它。它将在连接的设备或模拟器上启动移动应用程序,并执行测试脚本中指定的操作。执行完成后可以在控制台看到执行日志如下图

Appium With Java: A Comprehensive Guide

结论

Appium 和 Java 共同创建了一个强大的解决方案,用于自动化移动应用程序测试,在整个开发过程中节省时间和资源。这使您能够交付高质量的应用程序。本指南帮助您通过设置环境和编写第一个测试来开始您的旅程。但这只是开始!随着您进一步探索,Appium 可以与其他工具集成并测试不同的应用程序类型,从而使您能够构建强大的测试流程。通过采用 Appium 和 Java,您可以自动执行重复性任务、尽早发现错误并充满信心地交付卓越的移动应用程序。所以今天就开始你的 Appium 和 Java 测试冒险吧!

通过 Jignect 不断练习和探索,进一步掌握这些强大的工具。

见证我们细致的方法和尖端的解决方案如何将质量和性能提升到新的高度。开始您进入卓越软件测试世界的旅程。要了解更多信息,请参阅工具和技术以及质量保证服务。

如果您想了解更多关于我们提供的优质服务,请务必联系我们。

测试愉快! ?

版本声明 本文转载于:https://dev.to/jignect_technologies/appium-with-java-a-comprehensive-guide-4284?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 为什么我找不到远程工作?
    为什么我找不到远程工作?
    这不是一篇关于挫败感的文章,而是我在过去一年中一直在探索的现实。尽管通过各种远程工作平台并利用 LinkedIn 进行申请,但我还没有获得一次面试机会。 我是孟加拉国达卡的一名 ReactJS、NextJS 和 JavaScript 开发人员,我忍不住要问——我错过了什么?我是否有什么做得不对的地方...
    编程 发布于2024-11-08
  • Litlyx - 漏斗事件简介
    Litlyx - 漏斗事件简介
    Litlyx 正在成为一把瑞士军刀,作为收集网络分析的一体化工具。 实施非常简单,只需不到 30 秒! 最好的部分?我们提供自定义事件跟踪,具有最简单的用户体验。 在我们的仪表板中,一切都设计得直观且用户友好(尽管我们还没有聘请设计师,哈哈)。 漏斗图 漏斗图的想法来自我们的一位付费...
    编程 发布于2024-11-08
  • 如何从头开始制作 URL 缩短器
    如何从头开始制作 URL 缩短器
    从头开始制作应用程序是我最喜欢的学习应用程序工作原理的方式。这篇文章将讨论如何从头开始制作 URL 缩短器。 URL 缩短器非常容易制作,在我看来,这是初学者学习语言的好方法。更困难的部分是添加自定义域、分析、分组链接以及在 URL 缩短服务之上添加的其他功能。因此,您可以按照以下方法从头开始制作一...
    编程 发布于2024-11-08
  • 快速工程(针对懒惰的程序员):准确获取您想要的代码(甚至更多,从 ChatGPT 中获取)
    快速工程(针对懒惰的程序员):准确获取您想要的代码(甚至更多,从 ChatGPT 中获取)
    比尔盖茨已经说了这一切......做一个懒惰的程序员!. 作为一名程序员,没有什么比立即运行的代码更好的了——没有错误,没有无休止的调试。通过遵循某些提示技术,您不仅可以让 ChatGPT 编写代码,还可以编写优化的、功能齐全且有文档记录的代码,包括边缘案例、测试,甚至性能优化。 但首先... ...
    编程 发布于2024-11-08
  • React、Vue 和 Svelte 中的 JavaScript 框架 – 选择哪一个?
    React、Vue 和 Svelte 中的 JavaScript 框架 – 选择哪一个?
    JavaScript 框架在过去几年中取得了显着的发展,成为现代 Web 应用程序的支柱。 2024 年,React、Vue 和 Svelte 脱颖而出,成为最受欢迎的框架,每个框架都有其独特的优点和缺点。如果您正在构建新的 Web 应用程序,选择正确的框架对于项目的成功至关重要。 在本文中,我们将...
    编程 发布于2024-11-08
  • 提高 Spring Boot 应用程序的性能 - 第一部分
    提高 Spring Boot 应用程序的性能 - 第一部分
    启动Spring Boot应用程序时,我们通常使用启动器提供的默认设置,这对于大多数情况来说已经足够了。但是,如果我们需要性能,则可以进行具体调整,如本文第一部分所示。 将 Tomcat 替换为另一个 servlet 容器 应用程序web、RESTFul,使用Spring MVC,一...
    编程 发布于2024-11-08
  • 如何在 PHP 中高效合并关联数组并实现健壮的单元测试?
    如何在 PHP 中高效合并关联数组并实现健壮的单元测试?
    在 PHP 中合并关联数组:高效选项和单元测试策略简介组合关联数组是 PHP 编程中的常见任务。在本文中,我们将探讨将两个或多个关联数组合并为单个内聚数组的最佳实践。我们还将讨论有效的方法并提供详细的单元测试策略。array_merge 与 " " 运算符合并关联数组有两种主要方...
    编程 发布于2024-11-08
  • 抽象:一种程序化的思维方式
    抽象:一种程序化的思维方式
    “为什么程序员拒绝起床?他们陷入了太多的抽象层!” 在编程中,就像在生活中一样,我们经常需要简化复杂的事情以使它们更易于管理。想象一下,试图向从未见过计算机的人解释互联网,您不会从谈论服务器和协议开始。相反,你可以使用类比、故事或简化版本来传达这个想法。这就是编程中抽象的意义所在:简化复杂的事情。 ...
    编程 发布于2024-11-08
  • 您可以将内联脚本与 JavaScript 中的“src”属性结合起来吗?
    您可以将内联脚本与 JavaScript 中的“src”属性结合起来吗?
    JavaScript 中具有 SRC 属性的内联脚本在 JavaScript 中,通常使用 标签包含脚本,其中 src 属性指定外部脚本文件。然而,有时会想知道是否可以将内联脚本与 src 属性组合起来。规则官方行为受 HTML 4.01 规范管辖,该规范声明 src 属性优先于 标记的主体。这...
    编程 发布于2024-11-08
  • 不可变数据结构:ECMA 4 中的记录和元组
    不可变数据结构:ECMA 4 中的记录和元组
    不可变数据结构:ECMAScript 2024 中的新功能 ECMAScript 2024 引入了几个令人兴奋的更新,但对我来说最突出的一个功能是引入了不可变数据结构。这些新结构——记录和元组——改变了 JavaScript 中数据管理的游戏规则。它们提供了一种令人满意的方式来保持...
    编程 发布于2024-11-08
  • 如何在 PHP 中为注册用户自定义 URL?
    如何在 PHP 中为注册用户自定义 URL?
    在 PHP 中为注册用户设置自定义 URL对于电子商务平台来说,为每个用户提供唯一的 URL 对于展示他们的产品至关重要单独的产品。通过生成单独的网址(例如 www.seloncart.com/customername),您可以显示客户的特定产品。为此,请按照下列步骤操作:配置服务器路由: 修改服务...
    编程 发布于2024-11-08
  • 我如何用 Python 创建 QR 码生成器
    我如何用 Python 创建 QR 码生成器
    这将是一篇简短的文章,介绍我如何在 Python 中创建一个简单的二维码生成器 对于此步骤,您需要使用 qrcode 库:https://pypi.org/project/qrcode/ 创建项目文件夹后我所做的第一步就是创建一个虚拟环境。 Python 中的虚拟环境只是计算机上另一个独立的工作区,...
    编程 发布于2024-11-08
  • 如何在 PHP 中验证整数数据类型?
    如何在 PHP 中验证整数数据类型?
    验证 PHP 中的整数数据类型在 PHP 中处理数字数据时,确定变量是否表示整数至关重要。为了解决这个问题,通常使用 is_int() 函数。然而,它的行为有时可能是意想不到的,导致混乱。为了纠正这个问题,我们引入了验证整数数据类型的替代方法:FILTER_VALIDATE_INT使用该方法,可以高...
    编程 发布于2024-11-08
  • 为什么 DOMSubtreeModified 在 DOM Level 3 中被弃用以及替代方案是什么?
    为什么 DOMSubtreeModified 在 DOM Level 3 中被弃用以及替代方案是什么?
    在 DOM Level 3 中弃用 DOMSubtreeModified 事件DOMSubtreeModified 事件曾经是跟踪文档子树中更改的基本元素,现在已被在 DOM level 3 中已过时。了解这种弃用背后的基本原理并确定合适的替代方案至关重要。DOM Level 3 规范对 DOMSu...
    编程 发布于2024-11-08
  • 将 PDO 连接设置为 NULL 是否真正关闭连接并释放资源?
    将 PDO 连接设置为 NULL 是否真正关闭连接并释放资源?
    关闭PDO连接在PHP中,有两种流行的数据库连接接口:MySQLi和PDO。虽然两者的用途相似,但它们处理连接关闭的方式不同。MySQLi 需要显式关闭函数调用来释放连接:$this->connection->close();相反,PDO 使用空赋值来终止连接:$this->con...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3