1,技术栈是 python 2,网页场景是登录态(需要账号/验证码/短信)3,希望智能体完成测试的形式是:要断言并且要生成测试报告/截图/日志

可以做,而且在你的要求下(Python + 需要登录态 + 含验证码/短信 + 自动断言 + 报告/截图/日志),我建议按“可控、可落地”的路线选型与实现,而不是找某个“全能黑盒智能体”。

下面给你一套最常见、成功率最高的组合与实现要点。


推荐技术栈(Python)

1)浏览器驱动

  • Playwright(强烈推荐)
    • 自动等待更稳、对截图/轨迹支持好、CV/定位也更容易接入
  • Selenium 也行,但在验证码/复杂交互时经常更吃力

2)执行与断言

  • pytest 做测试组织
  • 断言使用:
    • Playwright 自带的 expect(...)(等待 + 断言很方便)
    • 或 pytest 的断言(assert

3)测试报告

  • pytest + Allure(最适合做“自动化报告 + 附件截图/日志/视频/trace”)
    • 截图:失败时自动抓
    • 日志:把请求/步骤/报错写进 allure attachment
    • 轨迹/回放:用 Playwright trace(非常有用)

4)日志与可追溯

  • Python logging + 每一步“action-观察-决策”记录
  • Playwright tracing + 截图 + DOM 快照(失败时保存)

你要的“自然语言操作网页”的智能体怎么落地

你可以把它做成一个循环系统(伪代码逻辑):

  1. 接收自然语言测试目标(例如:登录后进入后台并校验某页面元素)
  2. LLM 输出“下一步动作”(点击/输入/等待/滚动/选项)
  3. Playwright 执行动作
  4. 获取页面状态(URL、关键元素文本/截图/可见性/HTTP 状态)
  5. LLM 基于“状态”决定下一步
  6. 直到满足断言条件或超时失败
  7. 失败时生成:截图 + trace + 日志 + allure 报告

关键点:验证码/短信这类环节,LLM 单靠“点点点”通常无法完成,需要你提供可用的输入通道(见下一节)。


登录态场景(账号/验证码/短信)怎么处理

你有三类难点:账号密码、图片验证码、短信验证码。

A)账号密码(最简单)

  • 直接在环境变量/密钥库里读取
  • 页面元素定位后输入即可

B)验证码(图片验证码/滑块)

常见可行方案(按合规与可控程度排序):

  1. Mock / 测试环境绕过验证码
    • 最推荐:为测试环境提供“验证码白名单/跳过开关/后端固定验证码”
  2. 人工接管(Human-in-the-loop)
    • 失败时把验证码截图发给你/测试同事,提供“你输入验证码,智能体继续”
  3. OCR/图像识别
    • 适用于验证码相对简单,但稳定性不如人工或后端绕过
  4. 第三方验证码服务(需要合规评估)
    • 适合规模化,但要看你们是否允许、成本如何

如果你希望“完全自动化”,最关键的前提是:你能在测试环境中让验证码可被自动获取/绕过,否则就通常只能做到半自动接管。

C)短信验证码

可行做法:

  1. 短信平台提供回调/API 拉取验证码(推荐)
  2. 你把短信验证码粘贴给智能体继续执行(半自动)
  3. 从测试短信收件邮箱/设备抓取(看你系统怎么发)

我建议你先定义的“断言与测试报告模板”

例如每条用例至少包含:

  • 登录成功断言:例如头像/退出按钮/用户昵称出现
  • 业务页面断言:关键文本存在、接口返回状态码为 200(可通过拦截网络请求)
  • 失败工件:
    • 截图(Playwright)
    • trace(Playwright trace)
    • 页面 HTML/关键元素截图
    • 执行步骤日志(LLM 推理步骤也可脱敏后记录)
  • 报告聚合:Allure 用例级别

你可以直接选择的“现成方案形态”(三选一)

由于你要“AI 自然语言操作网页”,通常有三种实现路线:

  1. 自己搭一个“LLM+Playwright执行器”框架
    • 灵活、最贴合你们登录/断言/报告要求
  2. 用现成开源/商用 Agent 框架 + 你们的浏览器适配层
    • 快,但要看能不能很好处理验证码/短信/断言与附件
  3. 先完全用 Playwright 写自动化,再让 LLM 做“用例生成/定位/修复”
    • 迭代快、稳定性高;但不是真正“自然语言直接操作”的程度

在你这种“必须断言 + 必须报告/截图/日志 + 登录态复杂”的要求下,方案 1(自建执行器)最稳


我需要你补充 5 个信息,才能给你一套更精确的方案/目录结构/示例代码

  1. 你说的“验证码”是哪种?图片验证码还是滑块/点选
  2. 短信验证码你们有没有短信平台的查询/回调 API,还是只能人工查看?
  3. 测试环境是否有“跳过验证码/使用测试账号”的能力?
  4. 页面是否是单页应用(SPA)?是否有固定的登录成功后 URL?
  5. 你希望“自然语言”输入的粒度:
    • a. 一句话完成整条用例(登录+校验)
    • b. 分步骤逐条执行

你把这 5 点回答一下,我就可以给你:

  • 推荐的项目结构(pytest + allure + playwright + agent编排)
  • 登录流程的自动化策略(含验证码/短信的接管点)
  • “自然语言 → 可执行动作 → 断言 → 报告”的具体实现思路(以及伪代码/关键接口)。