使用 Jest 和 Puppeteer 构建 Web 自动化测试平台
· 阅读需 13 分钟
最后更新于 2021-08-15 14:54:00
测试为软件的稳定和完善提供了必要的支持,Web 前端开发领域相比于做单元测试,端到端测试更有意义和价值。谷歌发布的 Puppeteer 工具和脸书发布的 Jest 测试工具为 Web 端到端测试提供了极大的便利,这里记录了如何使用它们构建一个 Web 自动化测试平台。
技术预研
在本地跑通测试流程是首要解决的问题,在日常项目的脚手架中已经做了很多这方面的工作,而且从头开始来做也没有太大难度,基本上按官方文档步骤来做即可。直接使用 Jest 和 Puppeteer 做测试也是可以的,不过要繁琐很多,借助 jest-puppeteer
这个 npm 包可以简化很多流程,测试代码也要简略的多。
需求分析
Web 端到端自动化测试平台要求用户可以通过 Web UI 上传测试脚本代码到服务器,而服务器可以定时运行上传的测试脚本获取结果日志并存档,通过对整个流程分析可以确定有以下几个技术难点:
- Jest 和 Puppeteer 的服务端测试运行环境构建(版本管理)
- 用户测试脚本不可信,需要沙箱机制
- 数据传输涉及到
Buffer
,用 HTTP 还是 WebSocket - 脚本定时运行的任务调度
搞清楚需求和相应的技术难点后,可以先看看业内有没有解决方案可以参考。