端到端测试
End-to-End Test
中级通用端到端测试(End-to-End Test)是从用户入口操作产品,检查一段完整流程能否走通的测试。它能发现页面、接口和数据存储单独看都正常,连起来却出错的问题;比如提交订单后,用户是否真能在订单列表中看到它。
你可能会说:「帮我像用户一样走一遍下单流程,确认从填写信息到看到订单都正常。」
动手看看下单后列表找不到订单
1
测试从用户入口开始:在下单页点击提交,而不是直接调用接口,因为要验证整段操作能否走通。
要点端到端测试到底在测哪一段?
- 1
从用户操作走到最终结果
你可以把它想成让程序代替用户走一趟:打开页面、填写信息、点击提交,再检查结果是否出现。重点不是某个函数算得对不对,而是用户想完成的事有没有完成。
- 2
让多个环节一起接受检查
一个订单页面可能能正常显示,创建订单的接口也能单独返回成功,但两者接起来仍可能传错商品编号。端到端测试走完整条路径,所以有机会发现这种环节之间的问题。
- 3
只挑关键流程来自动化
完整流程通常比单独测函数慢,也更容易受网络、环境和测试数据影响。我们一般先挑登录、付款前的下单、保存关键资料等流程,给每条测试准备可控的数据,并在结束后清理。
容易混淆的地方
单元测试看一个函数或组件在给定输入下是否正确;集成测试看几个模块接起来能否协作。端到端测试则从用户入口出发,验证一件事能否完成。它不一定要调用真实的外部服务:例如支付服务可以用测试环境或替身,但你得清楚哪些环节被替换了,测试结论也只覆盖实际跑过的路径。
什么时候用
适合用
- 网站刚接好注册流程,想确认用户填表、收到验证结果后,真的能进入自己的账号。
- AI 工具新增了保存对话功能,想检查用户发消息、得到回复、刷新页面后仍能看到记录。
- 后台改了订单处理流程,想在发布前确认创建订单、查看订单和更新状态能连贯完成。
不适合用
- 只想确认一个价格计算函数对几组输入是否算对,用单元测试更快,也更容易定位错误。
- 只想检查两个服务之间的请求字段是否匹配,用契约测试或集成测试更直接。
- 还在讨论页面流程、没有可运行的产品时,先用可点击原型验证操作路径,而不是写端到端测试。
练一练选一个答案,看看解释
你让 AI Agent 给一个记账网站补测试。最近用户反馈:点击“保存账单”后显示成功,但刷新列表找不到记录。哪种测试最贴近这个问题?
让 AI 帮你做复制给 AI Agent 直接用
请为记账网站新增一条端到端测试:从页面填写并保存账单,刷新列表后确认账单仍存在。使用独立的测试数据,结束后清理;如果依赖被替换,请说明哪些环节没有被真实验证。