UI 自动化测试革命:拥抱 Maestro 框架的未来之旅
UI 自动化测试是一种软件测试方法,旨在验证应用程序的用户界面是否按照预期进行操作和交互。它通过模拟用户在应用程序界面上的行为,如点击按钮、输入文本、选择选项等,来测试应用程序的功能和用户体验。
对于常规的测试手段,也不过如此,在产品开发周期中,测试占据着很大的需求时间,在敏捷开发中之 21(开发一周、测试一周、上线 1 小时)开发模式中,测试的测试周期长达 1 周,那为什么会长达一周呢?
在每次的开发过程中,测试需要做的操作不仅仅是先有的版本需求测试,他们还需要做全量测试走查,就是说所有的重要部分都需要进行测试,而 Ui 自动化测试就是替代这部分大量的每个版本都需要执行的重复操作。
UI 自动化测试的优点
提高测试效率:自动化测试可以快速执行测试任务,比手动测试更高效。它可以在短时间内执行大量的测试用例,并且可以在不同的操作系统和浏览器上运行测试。
提高测试覆盖率:UI 自动化测试可以覆盖应用程序的各个功能和用户交互场景,确保应用程序在不同情况下的正确运行。
持续集成和持续交付支持:自动化测试框架可以与持续集成和持续交付流程集成,帮助团队在每次代码变更后自动运行测试,及早发现问题。
提高软件质量:通过自动化测试,可以更早地发现和解决潜在的问题和缺陷,提高软件质量和稳定性。
它的价值是什么
提高软件开发效率:自动化测试可以减少手动测试的工作量,加快软件开发的速度,同时提高开发团队的生产力
提供快速反馈:自动化测试可以快速执行,提供即时的反馈结果,帮助开发人员快速定位和修复问题。
降低测试成本:虽然 UI 自动化测试需要一定的初始投入,但随着时间的推移,它可以大大减少测试成本,尤其是在长期项目中。
提高用户满意度:通过自动化测试,可以更好地保证应用程序的质量和稳定性,从而提供更好的用户体验,增强用户满意度。
那常见的自动化测试有哪些呢?
一般情况下,使用 python 语言开发者居多,测试工程师必备的开发语言当然是首选,常见的自动化测试框架有哪些呢?
常见的 UI 自动化测试框架
Selenium:Selenium 是最受欢迎的 UI 自动化测试框架之一,支持多种编程语言,如 Java、Python 和 C#。它可以模拟用户在网页上的操作,执行各种测试任务。
Appium:Appium 是一个开源的 UI 自动化测试框架,专门用于移动应用程序的测试。它支持多种移动平台,如 iOS 和 Android,并提供跨平台的测试能力。
Cypress:Cypress 是一个现代化的 JavaScript 前端测试框架,旨在对 Web 应用程序进行端到端的自动化测试。它具有简单易用的 API 和强大的调试功能。
TestComplete:TestComplete 是一款功能强大的 UI 自动化测试工具,支持多种应用程序类型,包括 Web、桌面和移动应用程序。它提供了丰富的测试功能和易于使用的脚本记录功能。
UI 自动化框架的必要性不言而喻,但是对于小公司来说,他的高昂代价也是不可尝试的。而我今天要介绍的是一个新宠,他的成本很低,首先来一张图:
这是它的官方案例,看着是不是很激动,别着急,更激动的还在后面:
看见这张图后是不是更加激动了,它的语言组成是 kotlin、script、swift 这不就是常规开发语言吗,这不就是小公司的福音吗,为什么这么说呢?
开发语言决定了客户端开发工程师就可以搞定
招一个初级测试工程师也可以使用,有问题开发搞
可以让整个客户端一起搞,Android、IOS 工程师都可以
Maestro
Maestro is the easiest way to automate UI testing for your mobile app.
为什么要选择 Maestro
Maestro 建立在其前辈(Appium、Espresso、UIAutomator、XCTest)的学习基础之上的,就是说专业的测试工程师玩过的东西,这个都有,出生就在罗马了
高适应性。UI 元素不会总是在你期望的地方,屏幕点击不会总是通过等等。Maestro 拥抱移动应用程序和设备的不稳定性并试图应对它。
对延迟的内置容忍度。无需在您的测试中添加无需在您的测试中添加 sleep()调用。Maestro 知道加载内容可能需要一些时间(即通过网络)并自动等待(但不会超过所需时间)。
极快的迭代速度。测试被解释,不需要编译任何东西。Maestro 能够持续监控您的测试文件并在它们发生变化时重新运行它们。
功能强大的语法。在文件中定义你的测试脚本。
设置简单。Maestro 是一个可以在任何地方工作的单一二进制文件。
它的魅力或许只能通过官方网站去了解了 https://maestro.mobile.dev/
安装环境
以下是 Mac 环境:
在 mac 环境中,安装它时有两个依赖项必须安装
Xcode 推荐 14.x 或者更高的版本,这个直接去 App Store 下载就可以
idb_companion
官方地址 https://github.com/facebook/idb
使用 brew 安装:
安装上述两个环境后,使用如下代码,进行安装
更新也可以使用该代码
这就表示安装完成了,然后根据提示,进行配置
添加到环境中,
测试
完成之后 Android 不需要进行其他操作,直接自动连接
使用
配置好环境之后,在任意位置,当然一般都是指定测试文件夹,并创建以 .yaml 结尾的文件,
最简单的案例
启动指定包名的 APP
运行
结果就是打开指定包名的 APP
语法解析
官方 Demo
按照官方的介绍,我们可以使用命令下载它的全量案例
当然也可以直接下载 https://storage.googleapis.com/mobile.dev/samples/samples.zip
IOS
Android
Maestro Studio
Maestro 提供了一个工具,可以自动帮助我们写命令,简直不要太爽。
保证设备已经连接
运行命令
在本地指定端口直接产生一个 web 工作空间。
然后我们可以点击直观地选择 UI 元素以接收有关如何与 Flow 中的元素交互的建议,或者在 REPL 中输入 Maestro 命令并通过单击运行它们ENTER
。
单击设备屏幕截图以选择一个 UI 元素。
Maestro Studio 会自动生成示例,说明您如何与 Flows 中的选定元素进行交互。您可以双击示例以直接执行它,也可以复制它,通过可用的热键阅读文档和其他内容。
可以直接在 REPL 中执行命令
点击导出,可以保存自动化脚本,就问你怕不怕
总结
本文深入探讨了 UI 自动化测试及其在软件开发中的重要性,并介绍了几个常见的 UI 自动化测试框架,如 Selenium、Appium、Cypress 和 TestComplete。其中,特别重点介绍了基于这些框架的强大工具——Maestro 框架。Maestro 框架为开发人员提供了一套全新的语法和工具,使他们能够更轻松地创建、管理和执行 UI 自动化测试脚本。
安装和配置 Maestro 框架是使用该框架的关键步骤之一。在本文中,我们提供了详细的指南,指导读者如何轻松地安装和配置 Maestro 框架,为其工作环境搭建坚实的基础。
简单脚本示例与 Maestro 框架语法介绍 为了更好地演示 Maestro 框架的功能和特点,我们在本文中提供了一个简单的脚本示例。通过这个示例,读者可以了解 Maestro 框架的语法和基本用法。我们强调了 Maestro 框架的灵活性和易用性,以及其与其他框架相比的优势。
关注我,后续分享开源项目的学习过程,看看他们是怎么玩儿的,也可以一起讨论 UI 自动化测试相关的问题
版权声明: 本文为 InfoQ 作者【平安】的原创文章。
原文链接:【http://xie.infoq.cn/article/7e2df43d6d76e39b58813eee6】。文章转载请联系作者。
评论