打开任何一个测试团队的黑盒聊天记录,搜“黑盒工具”,测试跳出来的工具名字不会超过十个。Selenium、黑盒Appium、测试Postman、工具JMeter、黑盒Fiddler、测试Charles、工具Burp Suite、黑盒Robot Framework、测试Cypress、工具Playwright。黑盒翻来覆去就这些。测试但真正在项目里天天用的工具,可能只有三四个。
我见过一个做了六年功能测试的同事,电脑上只装了Postman和Fiddler。问他为什么不试试Playwright,他说:“够用了,换它干嘛。”这话听着糙,但点出了一个事实——工具是跟着场景走的,不是跟着潮流走的。
Web端:Selenium还是老大哥,但裂缝已经出现
Selenium活了多少年了?2004年到现在。它依然是Web自动化测试里绕不开的名字。WebDriver协议被W3C收编之后,Selenium 4的稳定性比早期好了不少。但说实话,写Selenium脚本的痛苦指数不低。元素定位、等待、iframe切换,每个环节都能让你加班到晚上十点。
Cypress和Playwright是冲着这些痛点来的。Cypress跑在浏览器里,自动等待,调试体验好得不像话。但它不支持多标签页,跨域也麻烦。Playwright是微软出的,支持Chromium、Firefox、WebKit三套内核,API设计比Selenium干净。我去年在一个后台管理系统项目里用Playwright重写了原来Selenium的用例,代码量少了将近四成。不过Playwright的中文资料还是偏少,遇到坑得翻GitHub issue。
接口测试:Postman是瑞士军刀,但别拿它当锤子
Postman最开始只是个Chrome插件。现在它变成了一个平台,能写测试脚本、能跑CI、能生成文档。但很多人只用到它的皮毛——发个请求,看看返回码是不是200,就完了。
Postman的Tests标签页里可以写JavaScript断言。比如 pm.response.to.have.status(200) 或者 pm.expect(pm.response.json().data.length).to.be.above(0)。这些写好了,配合Newman命令行工具,就能塞进Jenkins做持续集成。
JMeter也常被拿来测接口,但它真正的战场是性能。用JMeter做功能测试不是不行,就是有点别扭。线程组、取样器、监听器这套概念,对功能测试人员来说学习曲线偏陡。
抓包工具:Fiddler和Charles,选哪个看系统
Windows上Fiddler更顺手,Mac上Charles是标配。两个都能改请求、断点、模拟弱网。我习惯用Charles的Map Local功能,把线上JS文件映射到本地,改一行代码刷新页面就能看到效果,不用等前端重新部署。
Burp Suite是安全测试的领域。它的Proxy模块能拦截、重放、扫描漏洞。普通功能测试人员用不上,但如果你要做渗透测试或者安全审计,Burp是必装的。
移动端:Appium的坑,踩过才知道
Appium基于WebDriver协议,理论上能用同一套API跑iOS和Android。理论是理论。实际用起来,iOS的WebDriverAgent签名问题、Android的UIAutomator版本兼容问题,每一个都能耗掉你半天。有个做金融App的测试朋友跟我说,他们团队最后放弃了Appium,Android用Espresso,iOS用XCUITest,各写各的。“维护两套代码是累,但比跟Appium的环境问题打架强。”
选工具这件事,别想太复杂
项目用什么技术栈,团队什么水平,CI怎么跑,这三个问题想清楚了,工具基本就定了。别因为某个工具在GitHub上star多就硬上。我见过一个小组非要用Robot Framework做关键字驱动,结果写出来的用例比手点还慢。工具是拿来省时间的,不是拿来供着的。
最后提一句,黑盒测试工具再强,也替代不了你对业务的理解。Postman能告诉你接口返回了500,但为什么返回500,得你自己去翻日志、查数据库、找开发聊。工具只是手,脑子还是你自己的。