小程序自动化测试优化之wx API拦截

本文探讨了在小程序自动化测试中如何快速迁移和编写测试用例,特别是针对与环境关联的逻辑层模块。通过分析微信提供的测试工具,选择了小程序自动化,并展示了如何利用API拦截来实现类似Puppeteer的功能,简化测试用例的编写和迁移。
摘要由CSDN通过智能技术生成

随着小程序越来越被广泛使用,我们前端的开发工作也从单纯的web开发,扩大到web+小程序的跨端开发。为了提高研发效率,越来越多的web模块需要迁移、更新,兼容小程序以实现跨端复用。而这些模块也会跟随业务进行迭代和版本更新,这时候,我们就需要有良好的测试来保障各端模块的可靠性。

由于我们将许多已有的web模块迁移到小程序,web端的测试相对已经比较完备了。因此我们需要考虑的是:

如何快速的将已有的web用例迁移到小程序

针对新模块,如何快速编写两端用例。

(我们在web端使用的主要是Puppeteer和Jest的搭配。)

可直接移步最终方案

测试模块类型

我们目前的模块主要是以下三种类型:

与环境无关的逻辑层模块
与环境关联的逻辑层模块
与环境关联的UI组件模块

类型1的模块由于不受环境限制,可与web共用单元测试,无需额外的测试用例开发。

类型3的模块,由于小程序与web端差异较大,比较难实现复用(目前我们的web UI层主要基于React,小程序使用原生开发,同时配合kbone进行部分页面的同构开发)。

我们这里主要针对类型2的模块进行测试用例的迁移。

小程序端测试工具选择

小程序官方目前提供了两种工具来支持小程序测试:

组件单元测试 提供了一个测试工具集以支持自定义组件在 nodejs 单线程中运行。 小程序自动化
为开发者提供了一套通过外部脚本操控小程序的方案。

通过官方工具结合Jest, Mocha等测试框架,我们可以实现在小程序环境下的测试。

我们选择了小程序自动化。类似于在Puppeteer运行web端的测试,我们可以通过小程序自动化,操控开发者工具,以实现小程序环境下的测试。两者的相似之处给我们实现测试用例的跨端迁移甚至复用提供了可能性。

如何迁移测试用例

以迁移一个上报模块的测试用例为例,如下是我们已有的一个web上报模块测试用例。

web测试用例

该用例覆盖的路径为:调用imlog.default.error()方法 -> 浏览器将发起请求 -> 对请求参数进行校验。

test('.error()调用正常', async done => {
   
  const opts = {
   
    project: 'imlogtest',
  };

  // 检查上报请求的参数
  const expector = req => {
   
    try {
   
      const url = req.url();
      const method = req.method();
      const headers = req.headers(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值