为了减轻回归工作,日常巡检能力是非常必要的,那么网页巡检应该怎么做呢?
工具选型
获取网页信息是网页巡检的核心点,对此我们选取了 Puppeteer 开源工具,Puppeteer 是 Node.js 工具引擎,它提供了一系列 API,通过 Chrome DevTools Protocol 协议控制 Chromium 或 Chrome。
Puppeteer 可以获取以下内容:
- 网页访问是否正常:检查网页链接是否404,是否超时。
- 网页调用的 API 信息:通过
page.on('requestfinished')
获取网页 Network 信息,并过滤出 Type 为 xhr 的。这个时候就可以得到用户在访问网页的时候调用了哪些接口,包括接口的参数,接口的返回状态、返回值等。也可以优先过滤出 status 非 200 的接口重点关注。 - 网页 Console 信息:网页如果发生错误,在 Console 里可能会出现一些错误信息。可以通过
page.on('console')
获取网页 Console 信息,同样可以过滤出 error 类型的。 - 网页子链接
- 其他自定义信息
设计思路
平台能力
- 定时巡检功能:可定时可手动。
- 过滤 URL 功能:URL包含某些词才会进行巡检,或者包含某些词就不进行巡检。
- 对比两个环境接口返回值:将预发环境和正式环境巡检得到的接口返回值进行对比,就可以进一步实现页面的接口巡检。
- 巡检结果通知:巡检结果通过通讯工具通知到对应的负责人。
- 与 UI 自动化打通:让巡检更有针对性;