最近在做一个自动化测试方向的 Agent ,核心思路是将前端代码仓库“切片”——即把组件、路由定义、字段校验规则、关键业务逻辑等拆成片段,通过 embedding 存入向量数据库,再配合一个 page-agent 接入 Kimi K2.5 模型。该 Agent 目前具备路由映射、字段规则解析、代码向量化检索、路由查询 tool 、页面跳转 tool 等能力,整体遵循 ReAct 范式,目标是实现一种能够理解代码语义、自主探索页面并执行验证的自动化测试。
整体流程大致如下:
1 、代码仓库切片:将前端仓库中的关键信息(路由、组件、表单规则等)拆成片段,通过 embedding 存入向量数据库;
2 、Agent 决策与执行:page-agent 接入大模型( Kimi K2.5 ),结合 ReAct 模式,利用路由查询、页面跳转等工具,根据用户意图(如“测试登录流程”)从向量库中检索相关代码知识,生成测试步骤并执行;
3 、闭环反馈:执行过程中如果遇到异常,Agent 可以根据报错信息再次检索相关代码片段,调整策略。
目前有类似的开源实践吗?或者有哪些大佬在尝试么?这套功能有落地的可能性么?
1
weixind 3 月 27 日
代码不需要向量化。
不要自己做什么 Agent ,用 claude code 生成测试用例,自反馈。failed 的要么改测试用例,要么改代码。 ci 跑的时候 failed 也可以挂个钩子用 claude code 处理。 要技术产出的也就包一层壳子跑 cc 完事。 |
2
nc 3 月 27 日
给 Agent 一个 grep 就行了,Claude code 就是这么搞的
|
3
Razio 3 月 27 日
代码也向量,是不是抽象了。
|
4
meetthebest OP @Razio
如果将整个代码给大模型,大型项目的代码量可能很大,会暂用很多的上下文。代码向量化后,可以做到需要什么查询时候,更主要的是在页面中使用 agent 时,基于当前 DOM 结构进行分析时,无法纵观全局,基于代码向量分析,可以做到需要什么查询什么,模型分析我手头有什么有,在做策略。 (仅个人思考理解~) |
5
meetthebest OP |
6
weixind 3 月 27 日
@meetthebest #5 可以查一下 anthropic 相关的文档,有聊为什么不做代码向量化的。你要做的这些 claude code 已经做过、踩过坑了。
还有一点,不要让大模型分析 dom 结构,直接在代码里面使用 data-test-id 埋点,线上打包的时候去掉就可以了。 |
7
meetthebest OP @weixind 了解了一下,感觉可以使用 data-test-id 和 代码切片 进行互补~
我想实现的场景是类似这样子的,有 100 条测试用例(比如说测试同学写的),但是他们写的时候,不会知道我们代码里有 data-test-id 这些标记,大概形式是: case1: A 页面-详情-字段 F-必填 case2: A 页面-详情-字段 F-输入范围 0-10000 case3: A 页面-详情-提交按钮-正常提交 比较偏自然语言描述,所以我才想基于代码切片去做检索,这样子 agent 不用教也能跑通比较长链路的页面操作。算最终理想吧,不过目前只是在尝试阶段也不清楚当前的方向有没有对😂 |
8
weixind 3 月 27 日
@meetthebest #7
代码切片的思路是错的,放弃代码切片的方向。 测试同学使用自然语言描述测试用例,,也要通过 cc 生成,让 cc 自己在需要节点加 data-test-id ,落地成 playwright 的 test_case 。不要在测试的运行时接入大模型。failed 的时候可以接入。 |
9
meetthebest OP @weixind 好的,感谢大佬的建议和方向~
|