• Apifox实战——微信的第三方小程序提审发布


    什么是Apifox?

    简单来讲就是整合了 Postman + Swagger + Mock + JMeter等几种工具,通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就可以直接使用,无需再次定义;API 文档和 API 开发调试使用同一个工具,API 调试完成后即可保证和 API 文档定义完全一致。高效、及时、准确

    可能作为后端开发人员最熟悉的工具就是Postman和Swagger了,前端开发人员对Mock比较熟悉,而测试人员常用的工具就是JMeter了。

    • 通常我们的开发流程都是固定不变的,后端进行接口开发,开发的过程中会使用PostMan或其他工具对自己的接口进行调试,
    • 后端调试完成之后会整理自己开发的接口,编写接口文档,提供给前端
    • 前端拿到接口文档之后会整合接口对照接口中的字段
    • 前后端联调完成后,测试人员会通过接口文档,将接口整理到Jmeter中对接口进行压力测试

    什么是微信第三方小程序开发?

    在这里插入图片描述

    如上图所示,第三方小程序的开发步骤要比普通模式开发小程序多了好几步,那么为什么还是建议服务商选择第三方平台的方式进行代开发小程序呢?

    优点:

    • 效率更高,一个小程序模板可以批量提交给千千万的商家小程序
    • 更可靠,小程序的开发权限给服务商后,一定程度上避免出现由于商家的误操作导致小程序业务故障或者不稳定
    • 更快速,模板审核通过之后,商家小程序审核速度极快

    面临的问题:

    在这里插入图片描述

    • 如上图所示,每一个商家小程序的提交和审核都是需要手动调用API,随着小程序接入的商家越来越来多,如果没有做专门管理小程序的系统,那么生成体验版,开发提审流程都将手动调用API操作,这个手动调用API的过程是相当繁琐的,相信做过小程序第三方平台开发的同学应该了解。

    微信第三方小程序提审发布流程

    在这里插入图片描述

    解决方案

    swagger或者postman进行api调用(不推荐)

    这个方法是我使用最早的一个方法,首先简单解释一下整个流程如图:
    在这里插入图片描述
    比如说我们第三方平台有版本需要更新,那么对应接入的小程序也全部都要走一遍上面的流程,如果要是新接入的小程序的话,还需要设置隐私协议,相当于我如果提审一个小程序的话我最少要调五个接口,中间还不包括需要记录各个接口的返回值,因为接口之间都是相互依赖的,初期接入的小程序比较少的时候我一直采用通过swagger文档的方式去提审和发布,随着接入的小程序越来越多,通过swagger文档去调用接口相对来说效率就比较低下,而且手动去复制参数,特别容易搞混,出错的概率极大,目前我们已经接入了二十多个小程序,相当于每一次发布新的版本,我需要花费大量的时间调api去提审和发布这些小程序,之前我就出现了一次提审出错的情况,导致后台数据混乱,花费了极大的精力和时间才修复回来。

    通过Apifox调用(推荐)

    我这边是采用测试用例的方式进行组合多个接口,然后通过定义变量,以及设置全局的常量,来将多个接口组合为一个功能,下面详细描述一下整个设置的流程:

    1.新建测试用例

    在这里插入图片描述

    2.添加测试步骤

    这里需要注意这个步骤一定是按照平时提审先后的顺序去添加,因为我这边有定义变量,如果没有按照顺序可能会出现参数报错的问题
    在这里插入图片描述

    3.定义变量

    变量定义的方式比较多,太复杂的我还没有研究明白,我这边采用后置操作加全局变量的方式去实现我的需求,因为上面说过调用微信的接口需要令牌,但是令牌也是有时效性的,需要依赖其他的接口获取,所以,我采用后置操作,提取出来接口返回参数中的令牌作为全局参数,之后其他接口可以直接引用这个全局参数

    # 提取表达式
    $.data.authorizer_access_token
    
    • 1
    • 2

    在这里插入图片描述
    可以根据自己的需求去定义不同的变量,我这边定义了版本号和模板id,其他参数的定义就比较简单了,直接在环境里面去新增对应的变量名和本地值就行了。

    在这里插入图片描述

    4.使用变量

    在这里插入图片描述

    5.调用

    可以选择自己需要执行的步骤,测试报告中可以看到执行的历史记录和返回值详细信息
    在这里插入图片描述

  • 相关阅读:
    4405. 统计子矩阵
    跨平台命令行ssh终端工具tryssh详解
    [安卓APP毕业设计源码]基于Uniapp实现的医生诊疗APP
    【教学类-32-04】20231013十二生肖4.0(标记+1位数字+排序+左右分类)(大班:《我是中国人》偏科学-数)
    再来一次,新技术搞定老业务「GitHub 热点速览 v.22.44」
    mybatis笔记 映射配置文件
    Flink DataStream 侧输出流 Side Output
    大数据ClickHouse(十九):Flink 写入 ClickHouse API
    我的2023
    JS 逆向高阶之 - nodejs 常用的几个加密, 解密的库
  • 原文地址:https://blog.csdn.net/Mr_Susy/article/details/125398455