Maestro 1.39.0 中的新内容|UI测试应用

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


包括首个 AI 驱动的命令、新的分片选项、iOS 横屏支持,以及许多错误修复和稳定性改进。

自上次发布 Maestro v1.37.0 已超过三个月。今天,我们很高兴向您推出 v1.39.0。

新的 AI 驱动命令

此版本引入了首批 AI 驱动命令:assertWithAI 和 assertNoDefectsWithAI

“什么?AI 驱动的命令?什么时候应该使用它们?”很高兴你问了这个问题!

Maestro 的命令非常出色:可靠且确定性强。但现实世界不是这样的,有时很难,甚至不可能,将某些情况表达为明确的条件。

看看下面这个简单的例子。对我们人类来说,很明显这个屏幕存在按钮重叠的问题(除了真的很丑以外,但我们暂且不管这个):

两个按钮都可见且可以点击,因此像 assertVisible 这样的常规命令会通过,而 tapOn 也可以工作。如何捕捉到这个问题?您可以使用 assertNoDefectsWithAI

  • • assertNoDefectsWithAI

真的不能更简单了。现在,您可以收到明显出错的通知。

如果您想执行特定的断言,还可以使用 assertWithAI。得益于这个功能,您可以对断言做出大胆尝试!

  • • assertWithAI:
    assertion: A picture of a cute bunny is visible
    optional: true

查看我们的文档以了解如何在 Maestro 中配置 AI。简而言之,您需要提供自己的 OpenAI(或 Anthropic)API 密钥并将其作为环境变量导出。

我们是怎么想到这个主意的?

我们查看了问题跟踪器,发现当前获赞最多的问题是 #1222,其作者请求添加新命令以比较不同运行中的截图,以确保 UI 没有破坏。

截图测试有各种名称:原生 Android/iOS 社区称之为快照测试,Flutter 社区使用 "golden tests" 这个术语,还有 "baseline tests" 在流传。我们认为它们都是相同的概念。

这个问题是合理的,我们甚至开始实施它,但后来我们问自己:我们可以尝试做一些不同的事情吗?

截图测试的主要问题在于维护基准——这些“正确的”截图必须被检查并提交到 git 仓库中并进行维护。我们自己也经历过这种痛苦,并思考如何摆脱基准的束缚。不久之后我们决定使用 LLMs。

AI 驱动命令的下一步是什么?

Maestro 与 AI 的集成仍处于早期阶段,但从早期采用者的反馈来看,我们确信我们走在正确的方向上,前景非常广阔。我们看到了这一功能的巨大潜力,对其未来改进感到非常兴奋。

当然,请放心——我们仍然希望添加对传统截图测试的支持。我们认识到它在许多需要可预测性的场景中很有用——敬请关注!

并行执行改进

来自 Tarek Belkahia 的 PR #1955

在此版本中,您可以为 maestro test 命令传递两个新的互斥选项:--shard-all <N> 和 --shard-split <N>,其中 N 是要运行测试的设备数量。

  • • --shard-split <N> 与现在弃用的 --shard <N> 选项相同(将在未来版本中移除)——它将您的测试套件分成若干块,并在不同设备上运行每块,从而加速测试。

  • • 新的 --shard-all 略有不同。假设您想确保所有流程都能在小屏手机、大屏手机(有人还记得“平板手机”这个词吗?)和一台平板电脑上通过。--shard-all 就让您能在每个连接的设备上运行所有流程。

CLI 运行分片测试的输出也得到了改进:

改进后的终端输出使您可以轻松查看分片测试套件的状态。

iOS 横屏模式

这是一个长期存在的问题,但现在不再是问题了!

重要错误修复

  • • 允许在 setLocation 和 travel 命令中使用环境变量(#1988 由 Prasanta Biswas 提交)

  • • 修复了 JavaScript 输出使用整数导致反序列化错误的问题(#1788 由 Muhammed Furkan Boran 提交)

  • • 修复了在 flowsOrder 指定工作空间中的所有测试时没有测试被运行的问题(#2003)

  • • 修复了“BlockingCoroutine 正在取消”的混乱错误消息(#2036)

查看更新日志以获取完整列表。

Rhino JavaScript 引擎的即将弃用

Maestro 当前的默认 JavaScript 引擎是 RhinoJS。它可以处理简单脚本,但并没有实现现代 ECMAScript 标准——实际上,它停留在 ES5,这大大降低了它的实用性。

幸运的是,Maestro 也支持 GraalJS——一个支持 ECMAScript 2022 的更强大的 JavaScript 引擎。GraalJS 自 2023 年 6 月发布的版本 1.30.0 起就已经可以在 Maestro 中使用。未来,我们将把 GraalJS 作为默认的 JavaScript 引擎,然后移除 RhinoJS。

查看这个问题以了解我们如何推进这一变更。我们建议尽快切换到 GraalJS——如果在此过程中遇到任何回归,请创建一个问题并告知我们!

总结

本次发布就到此为止!

我们要感谢社区中所有测试新更改、创建功能请求和错误报告的成员。

特别感谢 Tarek Belkahia——一位 Maestro 社区的长期成员和热心的开源贡献者。本次发布的大部分错误修复和新功能都是他工作的成果。非常感谢,Tarek!

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值