测试工具一大堆,为什么你的自动化依旧跑不起来?因为工具只解决怎么写,不解决怎么不断跑。自动化跑不起来,一般不是缺 Selenium、Playwright、Cypress、Pytest、Allure、Jenkins这些软件,而是缺方法、工程化、治理和协作。
一、把工具当能力
很多团队的自动化是这样起步的:
听说Playwright好,搭一套;
听说接口自动化重要,再搭一套;
听说CI要接,接上Jenkins;
然后用例写了2000条,三个月后没人跑。
问题不在工具而在目的。自动化到底要解决什么?回归?冒烟?性能?数据构造?线上巡检?如果目的不清就会变成为了自动化而自动化。
二、跑不起来的六个坑
分层失衡,UI自动化过重
大量用例压在UI层,页面一改全挂。健康的结构一般是:单元/接口/契约为主,UI只包括主要途径。
环境和数据不可控
测试环境今天挂、明天慢,第三方依赖不稳定,数据被并发污染。自动化最怕随机失败,一旦失败不可信,就会被忽略。
用例本身太脆弱
硬编码、sleep、强依赖执行顺序、一个用例测十个场景、断言太弱。这种用例不是自动化,是自动定时炸弹。
没有进CI/CD
自动化只在本地跑、手工触发,代码合并前不跑,反馈太晚。不能进入研发流程的自动化,迟早会挂。
没有Owner,没有维护预算
脚本写完就扔给QA,页面一改没人修。自动化是产品,不是一次性脚本,需要不断维护。
可测试性差
开发不提供稳定选择器、测试接口、Mock能力,微服务依赖复杂,测试只能端到端。
三、组织问题比技术问题更致命
QA 单打独斗,开发不参与;
需求天天变,排期却不留自动化维护时间;
KPI 只看用例数、包括率,不看反馈速度、稳定性和缺陷发现;
失败用例长期飘红,没人处理,全员免疫。
自动化失败,往往不是技术失败,而是组织失败。
四、让自动化真正跑起来,做几件事
定目的,选场景
优先自动化高 ROI 场景:重要回归、冒烟、接口契约、数据构造。不要追求全量自动化。
分层建设
单元测试、接口测试、契约测试、UI 测试各司其职。UI 只保留最重点的端到端链路。
治理环境和数据
容器化环境、Mock 外部依赖、按需造数、数据隔离、命名空间隔离。稳定环境比多写 1000 条用例更重要。
接入CI,设置门禁
提交触发冒烟,合并请求跑重要回归, nightly跑全量。失败要通知、要阻断、要有人跟。
治理 Flaky 用例
建立隔离机制,统计失败率,根因修复。不要用无脑重试掩盖问题。
统一报告和可观测性
日志、录屏、trace、请求响应、失败截图统一呈现。定位成本越低,自动化越有人用。
开发、测试、运维共同负责
自动化不是 QA 一个人的 KPI。开发提供可测试性,运维提供稳定环境,测试设计场景和方法。
用正确标准测量
注意:反馈时间、稳定性、缺陷逃逸率、维护成本、ROI。不是用例数量。
自检六问
你的自动化每次提交都跑吗?
失败有人看吗?
环境稳定吗?
数据能随时造吗?
UI用例占比是不是太高?
最近一周 Flaky 率是多少?
如果这些问题答不上来,工具再多也跑不起来。
自动化不是买工具,而是建系统。先别再加新工具,先让现有自动化在 CI 上稳定跑一周。