使用 Pollyjs 进行 HTTP 请求测试
前端开发者独立于后端进行开发,往往需要对请求数据进行 mock。但如果在业务代码中进行修改,后期再进行修改不免要小心翼翼。 所以现有工具都会帮我们拦截请求,但如果针对初创项目来说,修改返回数据是不可避免的(graphql 把大部分数据修改置于前端),维护 mock 数据和线上数据保持一致是相对困难的。
这时候我们可以尝试使用 Pollyjs 。
Polly.JS 是一个独立的、与框架无关的 JavaScript 库,支持 HTTP 交互的记录、重放和存储。可以在 node 和浏览器中使用。Polly.JS 可以控制每个请求,并对不通请求模拟不同的响应。
当然 Polly.JS 最大的作用是做测试,不过该库也可以用于数据 mock。
持久化线上数据
Pollyjs 没有采用编写数据的方案,而是把线上接口返回的数据持久化,以便开发者使用以及测试。
一旦调用了 stop 方法,持久器将生成以下 HAR 文件,该文件将用于在重新运行时直接返回响应,不会向服务端请求。
如此,我们可以做持久化数据来进行各种测试。
进行 HTTP 请求测试
开发者也可以使用框架来修改响应数据做测试。
我们可以结合测试工具对项目添加请求测试,以便代码修改。
延迟数据返回
在进行项目开发的过程中,即使是有经验的开发者,也很有可能忽略网络问题带来的错误。
开发者往往拥有极快的网速。但是很多情况下,用户未必向我们所想的那样,他们对于网速的需求可能没有那么大,也不愿意为网络支付过高的费用。
比如在移动端的列表页面,用户会通过下拉界面来获取新的数据。但是如果开发者忽略网页重复数据的可能。 这时候,我们可能就需要添加底部加载图标和 loading 状态,在此状态下不进行请求,只有完结后再次进行请求。
当然,如果仅仅只是网络请求的快慢,我们只需要在浏览器上修改网络获取速度即可。但当前修改是针对所有的网络请求,如果仅仅只考虑单一请求带来的影响,浏览器就没有办法了,我们需要借助 Polly.js 。
当然. Pollyjs 也有更多的使用方法,我也会进一步学习以及分享该库。