AI在测试自动化中的实际应用 — 上下文、UI-Tars LLM、Midscene(第二部分)

2025-08-12   出处: dev.to  作/译者:Zhaopeng Xuan/溜的一比

系列文档:UI-Tars LLM 与 GPT-4o 在 AI 自动化测试中的比较

在第 1 部分中,我们大致了解了 UI-Tars LLM 是什么以及 Midscene 如何对其进行编排。在本文中,我主要想通过使用 Midscene 来比较 UI-Tars 和 GPT-4o 在 AI 驱动的自动化测试中的表现,以识别它们之间的差异、优缺点。

自 2025 年 2 月以来,Midscene 默认支持 gpt-4o、qwen-2.5VL 和 ui-tars。

1. 比较 GPT-4o 和 UI-Tars 在相同测试用例下的结果

我们将分析和比较不同类型的测试步骤。

1.1 步骤 1 - AI 断言
await aiWaitFor('The country selection popup is visible')

GPT-4o UI-Tars:7B
返回格式 Json_Object Plain text, but Json String
步骤数 1 1
时长 3.09s 2.27s 👍
成本 0.0035775\$ 0.0011\$ 👍
token 1390 2924
温度 0.1 0
消息 Browser Screenshot, Instructions Browser Screenshot, Instructions
结果 {"pass":true, "thought":"The screenshot clearly shows a country selection popup with a list of countries, confirming the assertion." } { "pass": true, "thought": "The country selection popup is visible on the screen, as indicated by the title 'Where do you live?' and the list of countries with their respective flags." }
1.2 步骤 2 - 简单操作步骤
Select France as the country that I'm living
GPT-4o UI-Tars:7B
返回格式 JsonObject Plain text, formated
步骤数 1 2
时长 3.22s 👍 4.54s(2.54s + 1.99)
成本 0.0109475\$ 0.0023\$ 👍
token 4184 14987(5110 + 9877)
温度 0.1 0
消息 截图、指令、部分 HTML 树 截图、指令
结果 { "actions":[ { "thought":"..", "type":"Tap", "param":null, "locate":{ "id":"cngod", "prompt":"..." } } ], "finish":true, "log":"...", "error":null } 迭代 2 步,每次返回 Thought:.... Action: \<click>

要点击国家弹窗中的“法国”,GPT-4o 仅需 1 次 LLM 调用,因为 GPT-4o 能够在一个回复中返回操作和完成状态。然而,UI-Tars 需要 2 次 LLM 调用,基于其推理过程,第一次调用返回操作,然后在执行操作后,第二次 LLM 调用会再次发送截图,以检查“用户指令”是否已完成

1.3 步骤 - 复杂步骤
Click Search bar, then Search 'Chanel', and press the Enter
GPT-4o UI-Tars:7B
返回格式 JsonObject 平文本,格式化
步骤数 1 4
时长 3.52s 👍 12.16s (4+2.77+2.36+3.03)
成本 0.01268\$ 0.00608\$ 👍
token 4646 49123
温度 0.1 0
消息 截图、指令、部分 HTML 树 截图、指令
结果 返回 3 个操作在一个回复中 { "actions":[ {...}, {...} ], "finish":true, "log":"...", "error":null } 迭代 4 步,每次返回 Thought:.... Action: \<click>

对于这个步骤,两者都能处理,但有很大差异。GPT-4o 的结果中没有推理,它生成了 3 个操作,并在操作开始前将 finish 标记为 true... 然而 UI-Tars 相对较慢,因为其推理 - 它执行一个操作,然后反思,然后决定下一个操作,总共也生成了 3 个操作,加上一个检查以验证当前阶段是否符合用户的期望,基于给定的“用户指令”。

1.4 步骤 - 滚动到不可预测的位置
Scroll down to the 1st product
GPT-4o UI-Tars:7B
返回格式 JsonObject 平文本,格式化
步骤数 2 2
时长 7.58 (3.01+4.57) 5.47s (3.18+2.29) 👍
成本 0.01268\$ 0.002735\$ 👍
token 12557 14994
温度 0.1 0
消息 截图、指令、部分 HTML 树 截图、指令
结果 { "actions":[ {...} ], "finish":true, "log":"...", "error":null } 迭代 4 步,每次返回 Thought:.... Action: \<click>

哇!由于 GPT-4o 使用中没有推理,要滚动到未知位置需要 2 次 GPT-4o 调用,第一次调用生成滚动操作,第二次调用检查截图并决定是否需要继续滚动。但使用 UI-Tars 时,它表现正常,第一次调用做出操作决策,第二次调用再次验证浏览器操作执行后的新截图。

1.5 “视觉”比较

UI-Tars 和 GPT-4o 都有自己的视觉。

GPT-4o UI-Tars:7B
视觉

对于一些小的或重叠的元素,GPT-4o 无法识别,而 UI-Tars:7B 可以实现几乎完全的识别。不幸的是,GPT-4o 甚至无法识别顶部横幅中的“登录”按钮。

2. 总结

2.1 处理复杂情况的能力
  • GPT-4o:由于没有推理或没有系统 2 推理,GPT-4o 可以处理一些直接的测试步骤,但对于一些非常一般的步骤,如“我登录”,它基本上无法处理这种情况。
  • UI-Tars:7B:由于其具有推理能力,它可以支持多达 15 个步骤,即 14 个操作 + 1 个最终检查,这是其推理的上限。
2.2 速度

在大多数情况下,使用 UI-Tars 需要的 LLM 调用次数是 GPT-4o 的两倍,因为 UI-Tars 需要对每个“用户指令”进行最终检查。 但 GPT-4o 在大多数情况下不需要在生成操作后验证“用户指令”。 所以 GPT-4o 更快,但测试结果可能更危险。

2.3 信任度

UI-Tars 总是检查之前计划的操作是否实现了“用户指令”,所以 UI-Tars 用时间换取了准确性,UI-Tars 只有在执行操作后再次检查截图时才将 finish 标记为 true,但 GPT-4o 即使在生成的操作执行之前也会直接返回 finish\=true...

2.4 对 GUI 元素的感知

从第 1.4 节可以看出,UI-Tars 甚至可以识别页面上的小元素和重叠元素,但 GPT-4o 在这方面失败了。

2.5 LLM 的额外输入

UI-Tars 仅根据截图做出决策(模仿人类视觉),但 GPT-4o 需要构建部分 HTML 树,这可能会因 HTML 代码的大小增加而减慢 GPT-4o 的速度。

2.6 成本

如果我们把 UI-Tars 部署到我们自己的基础设施上,那么为了实现与 GPT-4o 相同甚至更好的结果,你可以节省 50% - 75% 的成本。

3. 结论

总体而言,如果我们计划在日常工作中应用 AI,我相信 UI-Tars 在上述上下文中可以比 GPT-4o 做得更好。 然而,如何加快 UI-Tars 的推理速度,将是近期面临的一个挑战。


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
/63 人阅读/0 条评论 发表评论

登录 后发表评论
最新文章