e2e测试失败排查清单:10个高频问题与定位方法

发布时间:2026/10/9 7:34:54

e2e测试失败排查清单:10个高频问题与定位方法 e2e测试失败排查清单10个高频问题与定位方法【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2e跑e2e测试时红灯亮了别慌。e2e 是一个面向 Web 和移动端的下一代端到端e2e测试框架它给每一次失败都准备了完整的证据链错误码、退出码、trace 页面、失败截图和应用日志。本文整理 10 个 e2e 测试失败的高频问题并给出对应的定位方法帮你把排查时间从十几分钟压缩到几分钟。排查第一步看退出码判断问题类型e2e 用退出码告诉你是测试本身失败还是环境出了问题这决定了排查方向详见 docs/debugging.mdx退出码含义排查动作1测试失败断言、定位器、步骤超时打开 trace 页面看具体哪一步挂了2配置 / 收集 / 策略错误先修配置别急着重试3引擎、应用进程、模型服务失败确认是临时故障再重试4运行器内部错误直接反馈给项目方130运行被中断Ctrl-C、CI 取消无需排查 记住一句话退出码 1 查测试退出码 2 查配置退出码 3 查环境。10 个高频失败问题与定位方法以下错误码来自官方错误参考 docs/reference/errors.mdx每个问题都给出现象 → 原因 → 定位动作。1. 定位器找不到元素LOCATOR_NOT_FOUND现象getByRole/getByLabel等定位器在截止时间前始终没等到元素。常见原因可访问名称写错、文本不完全匹配、元素在 iframe 里、页面还没打开就断言。定位方法先看终端里给出的附近相似元素列表不确定时加exact: false重试iframe 用browser.frameLocator仍不确定就用--headed开一个可见浏览器肉眼确认。2. 定位器匹配到多个元素LOCATOR_AMBIGUOUS现象一次只允许匹配一个节点的操作如点击找到了 2 个以上目标立即失败、不做轮询。常见原因页面上有隐藏的重名元素、重复的标签文案。定位方法给定位器补充{ name }缩小范围或限定在容器内或用first()、{ visible: true }区分。3. 断言失败ASSERTION_FAILED现象expect或agent.assert的判定与实际不符例如期望 1 remaining 实际是 0 remaining。定位关键看 trace 里断言的轮询读数。如果 16 次读数全是同一个值多半是期望写错了或应用根本没进入该状态去 App 日志找失败的请求如果读数在中途发生变化说明断言和应用状态存在竞态需要换更稳定的等待条件。4. 应用无法启动APP_UNREACHABLE现象测试跑不到一半报告应用 URL 连不上或app.command迟迟没有就绪。常见原因端口不对、启动命令崩了、启动时间超过startupTimeout。定位方法给app.command配置log后重跑直接读启动日志确认端口没被占必要时调大startupTimeout。移动端出现该码时消息里通常会直接写出自动化 runner 的状态照提示执行恢复命令即可见 docs/mobile.mdx 的 Troubleshooting 章节。5. 端口/应用已在运行APP_ALREADY_RUNNING现象你本机已经手动起过被测应用运行器又想自己起一份readyUrl已被占用。定位方法停掉那个进程或者本地开发时把reuseExisting: true写进配置直接复用已有实例。6. 模型不可用MODEL_UNAVAILABLE/MODEL_PROVIDER_FAILED现象用agent.act/agent.assert的用例在第一步就挂掉。常见原因配置里根本没配模型MODEL_UNAVAILABLEAPI key 无效、限流、余额不足或请求 120 秒无响应MODEL_PROVIDER_FAILED。定位方法检查agents.name.model是否真的构造出了模型实例检查 key 和额度。注意纯定位器 断言的用例不需要模型把失败用例的 agent 步骤拆掉可以快速隔离问题。7. 缓存回放失效REPLAY_STALEe2e 会录制 agent 成功过的操作并回放跳过模型调用详见 docs/cache.mdx。当回放与当前界面不再匹配且开启了严格缓存cache.strict时步骤直接失败而不是回退给 agent。定位方法先用--no-cache跑一次确认是缓存问题然后关闭 strict 模式重新录制并提交新的缓存条目。运行摘要里的replayed / handed off / missed三个计数能快速判断缓存命中率是否异常。8. 步骤超时或预算耗尽STEP_TIMEOUT/STEP_BUDGET_EXHAUSTED现象agent 步骤跑不完动作步数、模型调用次数或时间预算先到头。定位方法把一个目标拆得更小、更具体确需复杂流程时调高maxSteps/maxModelCalls或调大配置里的timeout。--debug会输出每个 agent 步骤的耗时和模型调用表一眼看出卡在哪。9. 断言无法判定ASSERTION_INCONCLUSIVE现象agent.assert问了一个屏幕上根本看不到的东西——数据在别的页面、还在加载中、或者只存在于像素里。定位方法先app.open或等待到正确屏幕再提问如果答案只在像素里比如 Canvas 内容按提示加vision: true。注意它永远是失败不会算通过。10. 配置与收集错误退出码 2 的一族CONFIG_NOT_FOUND、INVALID_CONFIG、NO_TESTS、COLLECTION_ERROR等完整清单见 docs/reference/errors.mdx。现象一个测试都没跑起来就结束了。定位方法这类错误信息本身就会指出最近的正确写法。高频三件事配置文件名必须是e2e.config.ts/e2e.config.mtstargets里 Web 目标必须有app.urltestsglob 至少要匹配到一个文件NO_TESTS会列出相似文件名供你对照。用 trace 页面与证据目录快速定位每个走到测试阶段的运行都会为失败用例生成一个trace 页面.e2e/results/用例名/trace.md这是排查 e2e 测试失败的核心入口逐步时间线每个步骤落在哪个节点、断言等待期间读到的值、回放缓存的决策、页面跳转↪ navigated to /login、屏幕变化新增/删除/改动的节点App 日志console 输出、未捕获异常、失败请求、4xx/5xx 响应并标注发生在哪一步失败瞬间截图.e2e/results/用例名/attempt-1/screenshots/001-failure.png配合同目录的screen-at-failure.txt文本树直接看失败时的界面结构。另一个实用技巧某步骤之后显示screen: unchanged说明那个操作没有产生任何可见效果——通常意味着点击没落到目标上或被遮罩挡住了。四个调试命令按需取用命令用途e2e run --headed开可见浏览器肉眼跟看失败过程e2e run --debug输出每个 agent 步骤的耗时、模型调用与 token 表e2e run --no-cache绕过缓存回放排除旧录制嫌疑e2e run --videoretain-on-failure只保留失败用例的录像回看失败瞬间脚本化排查可读取.e2e/report.json版本化 schema用jq筛出非passed的结果及其error、steps、artifacts字段无需人工翻终端输出。延伸阅读调试指南docs/debugging.mdx —— 错误码速查表、trace 结构、录屏模式错误参考docs/reference/errors.mdx —— 每个错误码的触发条件与退出码缓存机制docs/cache.mdx —— 回放如何生效、unconfirmed/evicted的含义移动端排障docs/mobile.mdx —— 模拟器挂死、daemon 恢复命令完整示例工程examples/with-next/、examples/with-vite/每个都带可运行的测试套件排查口诀退出码定方向 → 错误码定原因 → trace 页面看证据 → 命令复现验证。按这个顺序绝大多数 e2e 测试失败都能在一轮重跑内定位到位。【免费下载链接】e2eNext generation e2e testing framework for web and mobile apps.项目地址: https://gitcode.com/GitHub_Trending/e2e6/e2e创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/9 7:34:54

Django汽车数据分析大屏可视化:从ORM聚合到ECharts实战

简介:基于Django的汽车数据分析大屏可视化系统项目是一套前后端分离的完整源码,面向对Python Web开发与数据可视化感兴趣的初中级开发者。项目以Django为后端,提供业务逻辑与数据存储接口;前端采用Vue 3搭建界面,并使用…

2026/10/9 7:34:54

基于spring boot的调查问卷系统 — 系统设计与实现

基于spring boot的调查问卷系统 — 系统设计与实现基于spring boot的调查问卷系统是一套基于 Spring Boot 与 Vue 的前后端分离管理系统,包含后台管理端与用户前台展示端,本文整理主要功能界面,供学习与源码参考。技术栈后端:Spri…

2026/10/9 7:29:54

脆性材料压缩剪切破坏仿真:CWFS损伤模型与非局部正则化实践

搞脆性材料破坏仿真的人,十有八九都会卡在同一个问题上:压缩状态下的剪切破坏到底该怎么建?摩擦、剪胀、损伤、软化,这些东西缠在一起,用传统局部本构去算,网格稍微调细一点,结果就完全变样。我…

2026/10/9 12:51:53

员工离职预测建模全流程:特征工程、模型对比与风险名单落地

简介:这是一份面向数据挖掘初学者与竞赛玩家的员工离职预测练习赛完整代码与数据包,围绕企业员工流失二分类问题,提供从特征工程、数据预处理到模型训练与结果提交的全流程脚本。包内共8个文件,以4个Python脚本和4个CSV数据文件为…

2026/10/9 12:51:53

DCF估值实战:现金流预测、折现率与终值的关键卡点

1. 从"算出一堆数字"到"看懂一家生意":DCF到底在算什么很多人第一次接触DCF(Discounted Cashflow,现金流折现)模型,都会经历一个相似的阶段:公式背得滚瓜烂熟,Excel拉得飞起…

2026/10/9 12:51:53

图像相似检索实战:特征提取、向量索引与近似最近邻查询全解析

简介:这份资源面向计算机视觉初学者与需要实现图像检索功能的开发者,提供了一套基于相似度计算的图片搜索程序,可用于内容推荐、版权检测或视觉识别等场景中查找与查询图相似的图片。压缩包共30个文件,约300KB,以C源码…

2026/10/9 12:51:53

动漫迷必备网站:聚合型追番工具的核心功能与自建指南

1. 从“追番到处找”到“一个入口全搞定”:这个站到底解决了什么如果你是一个追番超过三年的老观众,大概率经历过这样的场景:某个季度同时开播十几部新番,你在A站看两部,B站追三部,剩下的散落在各种小论坛、…

2026/10/9 12:46:52

Ubuntu 24.04安装MySQL 8完整指南:从字符集到远程访问

1. 环境准备与安装思路拆解1.1 人工智能课程为什么先搭数据库环境很多人觉得奇怪,学人工智能第一课不应该是Python、神经网络或者数据处理吗?怎么先折腾数据库?我一开始也这么想,直到自己带的课程项目陆续跑起来才明白——不管是训…

2026/10/8 10:03:18

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/8 10:03:20

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 0:04:27

毕业论文初稿完成后首次进行AIGC疑似度自查的摸底与分流策略

毕业论文初稿完成后首次进行AIGC疑似度自查的摸底与分流策略当数万字的学位论文初稿经历开题、实验、问卷与多轮文献梳理最终成形时,绝大多数研究生都会面临一道全新的形式审查关卡:AIGC 疑似度排查。在高校毕业审核流程中,盲审前的文本检测通…

2026/10/9 0:04:27

食堂节能改造源头工厂,商用厨房设备焕新方案广受好评

商用厨房作为餐饮经营、单位供餐的核心后勤阵地,其设备配置、动线规划与运维体系直接决定后厨作业效率、运营成本与合规性。从基础的灶具、制冷存储设备,到油烟净化、水处理等配套系统,每一个环节的合理性都与食品安全、能耗管控、消防安全挂…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑