Open-AutoGLM:AI驱动的UI自动化测试框架实战解析
1. 项目概述:Open-AutoGLM是什么,以及它为何值得关注
最近在测试圈子里,Open-AutoGLM这个名字被讨论得越来越频繁。作为一个长期和UI自动化测试“缠斗”的从业者,我本能地对任何宣称能“改变格局”的新工具抱有审慎的好奇。在深入研究了它的技术文档、社区讨论并进行了几轮实际尝试后,我觉得有必要聊聊这个项目。它不是一个简单的脚本录制回放工具,而是一个试图将大语言模型(LLM)与传统的UI自动化引擎(如Selenium、Appium、Playwright等)深度融合的框架。简单来说,它的核心目标是让测试脚本的编写、维护和执行变得更“智能”,甚至在一定程度上理解测试意图。
传统的UI自动化测试,无论是基于Selenium还是Playwright,其核心逻辑依然是“定位元素 -> 执行操作 -> 断言结果”。这套流程的痛点非常明确:元素定位器(如XPath、CSS Selector)极其脆弱,页面结构稍有变动,脚本就可能大面积失效;测试用例的维护成本高昂,几乎与开发新用例相当;编写测试脚本需要测试人员具备相当的编程能力。Open-AutoGLM试图用AI来缓解这些痛点。它通过LLM来理解自然语言描述的测试步骤(例如:“在搜索框输入‘Open-AutoGLM’并点击搜索按钮”),然后自动生成或适配对应的自动化脚本代码。更进一步,它还能在元素定位失败时,利用LLM对页面结构的理解,尝试寻找语义相近的替代元素,或者生成更健壮的定位策略。
这听起来是不是有点像“银弹”?先别急。它目前并不能“彻底改变”格局,因为AI的稳定性、对复杂交互场景的理解、以及执行效率都是待解的难题。但它确实指出了一个极具潜力的方向:将测试人员从繁琐、重复的定位器维护和脚本调试中解放出来,更专注于测试场景的设计和业务逻辑的验证。对于测试团队而言,这意味着可能降低自动化门槛,让业务测试人员也能参与脚本创建;同时,通过AI辅助的脚本修复,有望降低维护成本。接下来,我将从设计思路、核心实操、问题排查以及未来展望几个层面,拆解这个项目。
2. Open-AutoGLM的核心设计思路与架构拆解
要理解Open-AutoGLM能做什么、不能做什么,首先得看清它的设计骨架。它不是要取代Selenium或Playwright,而是作为一层“智能适配层”或“副驾驶”运行在它们之上。
2.1 核心组件与工作流
典型的Open-AutoGLM工作流可以概括为“描述 -> 理解 -> 生成/执行 -> 修复”的循环。
- 自然语言描述层 :这是用户的入口。测试人员或用例设计者用自然语言描述测试步骤,例如:“登录用户名为‘test’、密码为‘123456’的账户”。这一步降低了对编程技能的要求。
- 意图理解与规划模块 :这是LLM的核心作用区。框架会将自然语言描述,结合当前被测应用(AUT)的上下文信息(如页面截图、可访问性树、DOM结构快照),提交给LLM(如GLM、GPT等)。LLM的任务是理解用户的意图,并将其分解为一系列原子化的、可执行的UI操作指令序列。例如,将“登录”分解为“定位用户名输入框”、“输入文本‘test’”、“定位密码输入框”、“输入文本‘123456’”、“定位登录按钮”、“点击”。
- 指令到代码的转换与执行引擎 :规划好的指令序列会被传递给一个“翻译器”。这个翻译器负责将抽象的指令(“定位用户名输入框”)转化为具体自动化框架(如Playwright)的代码和定位策略。这里融合了传统方法:它可能首先尝试使用预定义的、稳定的定位器(如
data-testid);如果失败,则会调用LLM,基于当前页面信息,生成一个新的、更可能的定位策略(例如:“寻找一个<input>标签,其placeholder属性包含‘用户名’或‘user’,并且位于一个id为‘login-form’的表单内”)。最后,由底层的Playwright或Selenium驱动执行这些操作。 - 自愈与反馈循环 :这是其“智能”的集中体现。当执行过程中发生元素定位失败、操作超时等异常时,框架不会立即报错失败。它会捕获异常场景(包括错误截图、堆栈信息、当前DOM状态),再次求助LLM。LLM会分析失败原因(“按钮的文本从‘登录’改为了‘Sign In’”),并提出修复建议或直接生成新的定位策略,然后重试该步骤。这个过程可以配置重试次数,形成一个小型的自愈循环。
2.2 与传统框架的对比与定位
很多人会问,有了Playwright和Selenium已经很强大,为什么还需要Open-AutoGLM?我们可以用一个表格来清晰对比:
| 特性维度 | 传统UI自动化框架 (如 Playwright, Selenium) | Open-AutoGLM (AI增强型框架) |
|---|---|---|
| 脚本创建方式 | 手工编码,或通过录制工具生成基础代码,仍需大量手工调整。 | 自然语言描述驱动,由AI辅助生成和优化代码。 |
| 元素定位核心 | 完全依赖测试人员编写和维护定位器(XPath, CSS Selector)。脆弱,易随UI变更而失效。 | 混合策略 :优先使用稳定定位器;失效时,由AI基于语义理解生成新的定位策略,容错性更强。 |
| 维护成本 | 高 。UI每次改动都可能需要人工更新大量定位器和流程逻辑。 | 有望降低 。AI辅助的“自愈”能力可以自动处理一部分因UI微调导致的失败,减少人工干预。 |
| 技能要求 | 要求测试人员具备良好的编程能力和对HTML/DOM结构的理解。 | 降低了纯编码技能要求,但需要能清晰描述业务场景,并对AI的行为有一定理解。 |
| 执行稳定性 | 取决于脚本和定位器的质量。稳定性与投入的维护成本正相关。 | 引入不确定性。AI的决策可能不稳定,在复杂或动态页面上可能产生意想不到的操作。 |
| 适用场景 | 稳定、核心业务流程的回归测试;需要精确控制交互细节的测试。 | 快速原型验证;探索性测试自动化;UI频繁迭代初期的冒烟测试;辅助生成传统脚本的初版。 |
注意 :Open-AutoGLM并非要“取代”传统自动化,而是作为一种“补充”和“增效”工具。它最适合的场景是 应对UI的不确定性 和 提升脚本创建效率 。对于追求绝对稳定、高性能的回归测试套件,目前仍应以精心维护的传统脚本为主。
2.3 技术栈选型背后的考量
Open-AutoGLM通常构建在成熟的生态之上,其技术选型体现了务实和集成思路:
- 底层驱动 :优先支持Playwright。因为Playwright提供了更强大的自动等待、网络拦截、多浏览器支持,其API设计也更现代。对移动端,则集成Appium。
- AI模型集成 :支持多种LLM API,如OpenAI GPT、智谱GLM、通义千问等。项目名中的“GLM”暗示了与智谱AI模型的深度关联。选择本地化或可控的模型,是出于数据安全和定制化的考虑。
- 上下文提供 :为了给LLM提供足够的页面信息,会综合使用多种手段:
page.screenshot()获取视觉信息;page.accessibility.snapshot()获取更结构化的可访问性树;page.content()获取DOM源码。这些信息经过裁剪和格式化后,作为Prompt的一部分喂给LLM。
这种架构设计的目标很明确: 利用AI处理模糊和非结构化问题(理解意图、应对UI变化),利用传统自动化框架处理精确和结构化任务(执行操作、模拟输入) 。两者结合,理论上能覆盖更广泛的测试需求。
3. 从零开始:Open-AutoGLM实战搭建与核心操作
理论讲得再多,不如动手跑一遍。下面我将以一个简单的Web登录场景为例,带你走一遍Open-AutoGLM的实战流程。假设我们有一个登录页,有用户名、密码输入框和登录按钮。
3.1 环境准备与安装
首先,你需要一个Python环境(建议3.8+)。Open-AutoGLM通常以Python包的形式分发。
# 1. 创建并进入一个干净的虚拟环境(强烈推荐)
python -m venv autoglm-env
source autoglm-env/bin/activate # Linux/macOS
# autoglm-env\Scripts\activate # Windows
# 2. 安装核心框架。注意:包名可能为 open-autoglm 或类似,请以官方文档为准。
# 这里假设使用pip从官方源或测试源安装
pip install open-autoglm
# 3. 安装你选择的浏览器自动化后端,这里以Playwright为例
pip install playwright
playwright install chromium # 安装Chromium浏览器驱动
接下来是最关键的一步:配置AI模型。你需要一个LLM的API密钥。以使用OpenAI为例(国内用户可选择智谱、DeepSeek等支持API的模型):
# 在项目根目录创建一个 .env 文件,存放敏感配置
# OPENAI_API_KEY=sk-your-actual-api-key-here
# 或者,如果你使用智谱GLM:
# ZHIPU_API_KEY=your-zhipu-api-key
# 在你的测试脚本或配置文件中加载这些环境变量
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv('OPENAI_API_KEY')
# 后续在初始化Open-AutoGLM时传入这个key
实操心得 :模型API是主要的成本中心。对于测试这种任务,不一定需要最顶级的模型(如GPT-4)。GPT-3.5-Turbo或同等能力的模型在多数场景下已经足够,且成本更低。初期探索建议从按使用量付费开始,避免固定月费套餐。
3.2 编写你的第一个“智能”测试用例
传统Playwright脚本你需要写定位器和操作。现在,我们用自然语言来描述。
import asyncio
from open_autoglm import OpenAutoGLM # 假设的导入方式,具体以官方为准
async def test_login_with_autoglm():
# 1. 初始化Open-AutoGLM驱动,指定后端为Playwright,并传入LLM配置
driver = OpenAutoGLM(
backend='playwright',
llm_config={
'provider': 'openai', # 或 'zhipu', 'qwen'
'api_key': api_key,
'model': 'gpt-3.5-turbo' # 根据成本和性能选择
}
)
# 2. 启动浏览器并打开被测页面
await driver.start_browser(headless=False) # headless=False方便观察
await driver.goto('https://your-test-app.com/login')
# 3. **核心步骤**:用自然语言驱动测试
# 框架会将这段描述发给LLM,LLM结合页面上下文生成操作序列并执行
test_steps = """
1. 在用户名输入框中输入 “test_user”。
2. 在密码输入框中输入 “secure_password123”。
3. 点击登录按钮。
4. 验证页面是否跳转到了仪表盘页面,并且页面上包含“欢迎回来”的文本。
"""
# 执行自然语言描述的测试步骤
report = await driver.execute_steps(test_steps)
# 4. 查看执行报告
print(f"测试结果: {report.status}") # 可能是 PASS, FAIL, UNSTABLE
print(f"执行日志: {report.steps}")
# 5. 关闭浏览器
await driver.stop_browser()
# 运行异步函数
asyncio.run(test_login_with_autoglm())
执行这段代码,你会看到浏览器自动打开,并尝试完成登录操作。Open-AutoGLM在后台做了大量工作:它分析了页面,识别出哪个输入框是“用户名”,哪个是“密码”,并执行点击和断言。
3.3 核心配置参数与调优
要让Open-AutoGLM稳定工作,理解并调整其配置参数至关重要。以下是一些关键配置项及其含义:
driver = OpenAutoGLM(
backend='playwright',
llm_config={...},
# 以下为性能与稳定性调优参数
config={
'max_retry_attempts': 3, # 单个步骤失败后的最大重试(自愈)次数
'retry_delay': 1.0, # 重试间隔(秒)
'timeout_per_step': 30000, # 每个步骤的超时时间(毫秒)
'highlight_elements': True, # 执行时高亮正在操作的元素,便于调试
'screenshot_on_fail': True, # 失败时自动截图,保存到报告
'dom_snapshot_level': 'compact', # 发送给LLM的DOM信息量:'full', 'compact', 'accessibility'
'confidence_threshold': 0.7, # AI对元素定位的信心阈值,低于此值会尝试其他策略或报错
}
)
-
max_retry_attempts:这是“自愈”能力的核心。设为2-3是一个合理的起点。过高会导致执行缓慢,过低则可能错过自愈机会。 -
dom_snapshot_level:直接影响LLM的Prompt大小和API成本。‘compact’会发送精简后的DOM和关键属性,适合大多数场景。‘full’在页面极其复杂且AI始终无法理解时尝试,但成本高、速度慢。 -
confidence_threshold:一个微妙的参数。AI在定位元素时会返回一个置信度。阈值设得太高(如0.9),AI可能因不够“自信”而频繁报错;设得太低(如0.4),则可能操作错误的元素。需要通过实验找到平衡点。
避坑指南 :初期最常见的失败原因是 LLM的“幻觉” 。它可能将页脚的公司名称“登录”误判为登录按钮。缓解方法有:1) 在自然语言描述中提供更精确的上下文,如“点击登录表单内的提交按钮”;2) 在页面中为关键元素添加明确的
data-testid属性(如data-testid=“login-submit-btn”),并在配置中告诉Open-AutoGLM优先使用这些属性。这本质上是为AI提供“路标”。
4. 深入解析:Open-AutoGLM如何处理复杂场景与断言
简单的输入点击只是开始。真实的测试场景要复杂得多:下拉选择、文件上传、iframe、异步加载、复杂断言等。Open-AutoGLM如何应对?
4.1 处理复杂交互与等待
对于复杂交互,你需要更精确地描述,或者结合传统脚本的优势。
- 下拉框选择 :描述需要具体。“选择国家为‘中国’”比“操作下拉框”更好。AI会尝试寻找
<select>元素或模拟点击下拉列表再选择文本。 - 文件上传 :目前是薄弱点。直接描述“上传文件‘report.pdf’”可能失败。更可靠的方式是,先用Open-AutoGLM点击上传按钮触发文件选择对话框,然后用Playwright原生方法填充文件路径。
# 混合模式:AI定位元素 + 原生操作 await driver.execute_steps(“点击‘上传文件’按钮”) # 假设AI已成功点击,打开了文件选择器 page = driver.get_native_page() # 获取底层的Playwright Page对象 await page.set_input_files('input[type="file"]', 'path/to/report.pdf') - 处理iframe :如果操作对象在iframe内,需要先指示AI切换上下文。描述如:“切换到名为‘payment-form’的iframe内部,然后在卡号输入框中输入‘4111111111111111’”。框架需要能解析这种上下文切换指令。
- 智能等待 :这是Open-AutoGLM相比早期录制工具的一大进步。你不需要在描述中写“等待2秒”。AI在执行“点击搜索按钮”后,如果预期下一个步骤是“验证结果列表出现”,它会自动利用底层Playwright的等待机制(如
wait_for_selector),直到相关元素出现或超时。这得益于LLM对操作序列因果关系的理解。
4.2 断言(验证)的智能实现
断言是测试的灵魂。Open-AutoGLM支持多种断言方式:
- 隐式断言 :在你的描述中直接包含验证意图,如“验证登录成功,页面跳转到首页”。AI会尝试寻找跳转证据(URL变化、新页面特有元素)。
- 显式自然语言断言 :使用明确的验证语句。
test_steps = """ ... 登录步骤 ... 然后,验证当前页面的标题包含“仪表盘”。 并且,验证页面中有一个显示用户名的元素,其文本内容是“test_user”。 """ - 结合传统断言 :对于复杂的逻辑断言,可以混合使用。先用AI导航到正确页面,再用
driver.get_native_page()获取原生对象进行精细断言。await driver.execute_steps(“导航到订单列表页”) page = driver.get_native_page() order_items = await page.locator(‘.order-item’).count() assert order_items > 0, “订单列表应为非空”
4.3 测试数据与参数化驱动
自然语言描述中硬编码测试数据(如“test_user”)不利于数据驱动测试。Open-AutoGLM通常支持变量替换。
# 定义测试数据
test_data = {
“username”: “test_user”,
“password”: “secure_password123”,
“expected_welcome_text”: “欢迎回来”
}
# 在描述中使用变量占位符,如 {username}
test_steps = f"""
1. 在用户名输入框中输入 “{test_data[‘username’]}”。
2. 在密码输入框中输入 “{test_data[‘password’]}”。
3. 点击登录按钮。
4. 验证页面是否包含文本 “{test_data[‘expected_welcome_text’]}”。
"""
# 或者,更优雅地,使用数据驱动测试框架(如pytest)来循环执行不同数据
import pytest
@pytest.mark.parametrize(“username, password”, [(“user1”, “pwd1”), (“user2”, “pwd2”)])
async def test_login_param(username, password, autoglm_driver):
steps = f”...输入 {username} ... 输入 {password} ...”
await autoglm_driver.execute_steps(steps)
5. 实战中常见问题、排查技巧与局限性认知
在实际项目中引入Open-AutoGLM,你会遇到一系列特有的挑战。下面是我踩过的一些坑和总结的应对策略。
5.1 常见问题速查与解决方案
| 问题现象 | 可能原因 | 排查与解决思路 |
|---|---|---|
| AI执行了错误操作 (如点了错误的按钮) | 1. 页面元素语义模糊。 2. AI置信度过低但阈值设置太宽松。 3. Prompt描述歧义。 |
1. 增强页面可测试性 :给关键元素添加唯一的 data-testid 或 aria-label 。 2. 调整置信度阈值 :适当调高 confidence_threshold 。 3. 优化描述 :使用更精确、唯一的描述,如“点击 登录表单内 的 蓝色 提交按钮”。 4. 查看执行日志 :框架应输出AI的决策过程,看它基于什么理由选择了那个元素。 |
| 执行速度非常慢 | 1. 每次操作都调用LLM,网络延迟高。 2. dom_snapshot_level 设置为 ‘full’ ,传输数据量大。 3. 重试次数过多。 |
1. 启用缓存 :检查框架是否支持对解析结果进行缓存。相同的页面结构,第二次操作不应重复调用LLM。 2. 降低DOM粒度 :使用 ‘compact’ 或 ‘accessibility’ 模式。 3. 优化重试策略 :减少 max_retry_attempts ,或区分步骤类型设置不同重试策略。 4. 考虑更快的模型 :在测试环境中使用响应更快的模型。 |
| AI无法理解复杂描述 | 1. 描述过于冗长或包含多步逻辑。 2. LLM的上下文长度或理解能力有限。 |
1. 拆分步骤 :将复杂的用例拆分成多个简单的 execute_steps 调用。 2. 分步描述 :先描述“打开筛选面板”,再描述“选择筛选条件A”,最后“点击应用筛选”。 3. 提供示例 :在团队内建立“描述规范”,用最清晰、简洁的语言描述操作。 |
| 断言失败,但肉眼观察页面正确 | 1. AI用于断言的元素定位不稳定。 2. 页面内容异步加载,AI断言时机过早。 3. 断言文本存在空格、大小写差异。 |
1. 使用更稳定的定位器辅助断言 :对于关键断言点,可以在描述中指定使用 data-testid 。 2. 在断言前增加明确等待指令 :在描述中加入“等待结果列表加载完成”。 3. 使用模糊匹配 :检查框架是否支持断言文本包含(contains)而非完全相等(equals)。 |
| API调用成本失控 | 1. 测试用例设计不合理,频繁调用LLM。 2. 未使用缓存。 3. 发送的DOM信息过多。 |
1. 分析调用模式 :识别哪些步骤是静态的(如导航),可以预生成脚本而不必每次调用AI。 2. 强制启用缓存 。 3. 精简Prompt :与开发团队协作,确保页面有良好的语义化结构,减少需要发送给AI的冗余信息。 |
5.2 当前的核心局限性
认识到局限性,才能更好地使用工具。
- 非确定性 :这是AI引入的最大挑战。同样的描述,在不同时间运行,可能因LLM输出的细微差别而导致不同的操作序列或定位策略。这对于追求百分百稳定的回归测试是不可接受的。
- 执行效率与成本 :每次调用LLM都有延迟和费用。虽然缓存能缓解,但对于有成百上千用例的测试套件,全量使用AI驱动在经济和技术上都不现实。
- 复杂逻辑处理能力有限 :AI擅长处理模式识别和基于上下文的单步决策,但对于需要复杂状态判断、数据提取和计算的测试逻辑(例如:“如果订单总价超过100元,则验证运费为0;否则验证运费为10元”),目前仍需依赖传统编码。
- “黑盒”调试困难 :当测试失败时,你需要排查是应用BUG、传统脚本问题还是AI的“决策”问题。调试链更长,更复杂。
5.3 我的混合策略建议
基于以上,我目前的策略是“混合模式”,而非“全盘替代”:
- 核心回归测试 :使用传统Playwright/Pytest编写和维护,保证绝对稳定和高效。
- 探索性测试与快速验证 :使用Open-AutoGLM。快速将探索路径转化为可重复的脚本,用于验证新功能或随机测试。
- 脚本生成与辅助维护 :对于新页面或UI大改版,先用Open-AutoGLM通过自然语言描述生成脚本“初稿”,然后由测试工程师将其重构、优化为稳定、可维护的传统脚本。当UI发生微小变动导致传统脚本定位器失效时,用Open-AutoGLM的“自愈”尝试给出修复建议,人工审核后采纳。
这种模式既能享受AI带来的效率提升和灵活性,又能守住回归测试稳定性的底线。
6. 集成与进阶:在CI/CD流水线中扮演的角色
将Open-AutoGLM集成到持续集成/持续部署(CI/CD)流水线中需要格外小心,因为它的非确定性。但这不代表不能做。
6.1 在CI中的定位:守门员还是侦察兵?
不建议将AI驱动的全流程测试作为流水线的核心质量“守门员”(Blocking Gate)。更适合的角色是“侦察兵”或“预警系统”:
- 夜间构建的冒烟测试 :在每日夜间构建后,用一组关键的、描述稳定的AI测试用例进行快速冒烟,发现明显的阻断性问题。
- UI变更影响评估 :当提交的代码涉及前端UI修改时,触发对应的AI测试用例,观察AI是否能“适应”新的UI,从而快速评估修改的影响范围。
- 可视化回归辅助 :结合其截图能力,在AI执行测试时进行基线对比,发现非功能性的UI样式回归。
6.2 流水线集成实践要点
- 环境隔离与稳定性 :确保CI环境中的浏览器版本、驱动版本与开发环境一致。使用Docker镜像固化环境。
- 控制成本与超时 :在CI配置中严格设置超时时间,并为LLM API设置用量告警和月度预算,防止因脚本循环失败导致巨额账单。
- 结果报告与分类 :CI报告需要清晰区分“失败”原因:是产品BUG(AI执行了正确操作但结果不对)?还是AI“失职”(未能正确理解或操作)?后者不应直接导致构建失败,而应触发通知,由人工复查。
- 测试数据管理 :CI环境需要有独立、稳定的测试数据。避免使用AI去操作生产数据或状态不稳定的测试数据。
# 一个简化的GitLab CI配置示例
stages:
- test
ai-smoke-test:
stage: test
image: python:3.10-slim
variables:
OPENAI_API_KEY: $OPENAI_API_KEY_CI # 从CI变量中读取密钥
before_script:
- pip install open-autoglm playwright
- playwright install chromium
script:
- python -m pytest tests/ai_smoke/ --html=report.html --self-contained-html
# 注意:这里pytest应配置为将AI测试的“不稳定”结果标记为警告或单独分类
artifacts:
when: always
paths:
- report.html
- screenshots/ # 保存失败截图
allow_failure: true # 关键:允许失败,不影响整体流水线通过
允许失败( allow_failure: true ) 是关键配置。这标志着我们承认AI测试的不稳定性,它提供的是“信息”而非“判决”。
7. 未来展望与团队落地建议
Open-AutoGLM及其代表的“AI+测试”方向,远未成熟,但已足够引起重视。它改变的或许不是“格局”,而是“工作模式”。
对于测试团队,尤其是面临UI频繁变化、自动化覆盖率提升困难的团队,我建议采取如下渐进式落地策略:
- 学习与试点(1-2个月) :选择1-2名有技术热情的成员深入探索Open-AutoGLM。在一个非核心但UI变化较频繁的新功能模块进行试点。目标不是提升覆盖率,而是 积累经验 :了解它的能力边界、失败模式、调优方法。
- 建立规范与模式(持续) :基于试点经验,建立团队内的“自然语言描述规范”。例如,规定如何描述元素(优先使用角色+文本),如何组织步骤顺序。同时,探索出适合自己项目的“混合模式”最佳实践:哪些用例适合AI,哪些必须用传统代码。
- 工具化与集成(3-6个月) :将Open-AutoGLM封装成团队内部的便捷工具或插件。例如,开发一个简单的IDE插件,让测试人员在编写传统脚本时,能一键将选中的自然语言描述转换为代码片段(由AI生成),再进行人工润色。将其集成到测试管理平台,作为快速生成测试脚本的辅助功能。
- 能力下沉与普及 :当模式成熟后,可以向更多的业务测试人员推广。让他们能够用自己最熟悉的业务语言来描述用例,由AI辅助生成可执行的测试脚本初稿,再由自动化专家进行加固和集成。这能真正降低自动化门槛,让测试人员更聚焦于业务逻辑本身。
Open-AutoGLM不是终结者,它是一个强大的“杠杆”。它能否为你“撬动”更高的测试效率,取决于你如何将它放置在合适的支点(应用场景)上,并与你现有的、坚固的自动化体系(传统脚本)有机结合。忽略它的局限性,全盘押注,会带来混乱和成本;因噎废食,完全拒绝,则可能错过一次有价值的效率革命。我的体会是,以开放但务实的心态,将它作为工具箱里的一件新式、有待磨合但潜力巨大的工具,小步快跑,持续验证,或许是当前最稳妥的前行方式。
更多推荐

所有评论(0)