如何进行微信小程序压测

小程序是移动互联网时代重要的流量入口。为了避免在使用过程中出现因为系统性能瓶颈而影响用户体验的问题,小程序在新功能上线前需要做好压力测试,让系统在面对流量突增时也能保持稳定。

常见小程序压测场景

  • 在新系统或功能上线前了解其性能状况,确保上线后保持平稳运行。
  • 在对系统进行优化或者扩容后,通过压测了解系统调优前后的性能差异。
  • 在预测会产生大流量前(比如举办活动)对系统性能进行评估,以避免流量突增造成系统崩溃,影响用户体验。

使用性能测试PTS进行小程序压测的优势

  • PTS自研压测引擎,支持吞吐量模式,准确模拟流量漏斗模型。
  • 支持全国地域发起压测流量,模拟真实用户分布。
  • 提供问题诊断工具,展示方法堆栈粒度的报错信息,精准定位性能问题。
  • 支持客户端代理录制,大大降低构建压测脚本的成本。

开始进行小程序压测

不同于自建网站压测,在进行小程序压测时,通常需要获得小程序所在的平台(如支付宝、微信)的Token信息,并在有效期内使用,才能正常对小程序的业务接口进行压测。推荐您通过以下两种方式获取平台授权的Token:
  • (推荐)编写接口自动获取Token,并在有效期内刷新该Token。压测中,您使用PTS对该接口进行压测,可以自动获得Token。
  • 压测前提前记录平台Token,并以参数形式传入小程序业务接口中。但是请注意压测时长不能超过Token的有效期,避免因Token失效导致无法进行业务压测。

本文以微信平台为例,介绍如何压测微信平台上的小程序。

方式一:编写接口获取Token

假设需要压测微信平台上小程序的活动页面,您可以编写接口去获取微信的Token信息,将该接口编排进压测场景中,并提取出参,传递给后面实际的业务接口。

  1. 在本地编写接口,以便能够在压测过程中持续地获取微信的Token信息。
  2. 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测
  3. 填写场景名,例如myAPP,然后在场景配置页签下,单击压测API名称一栏右侧的箭头展开更多详细设置,填写第一个压测API,即自定义的获取微信Token的接口。
  4. 选择出参定义页签,配置示例如下:
    • 出参名:access_token
    • 来源:Body:JSON
    • 解析表达式:access_token
    微信出参 token1.png
  5. 单击添加压测节点,填写第二个API,即小程序活动页面接口,请求方式选择为POST

    小程序活动页面接口即小程序的URL。

    小程序接口页面2
  6. 单击页面底部的参数列表,在弹出的对话框中单击出参名的复制图标,复制该出参参数。
    复制出参1.png
  7. 假设需要在API的Body中传入已复制的出参access_token,单击API的Body定义页签。在Key中填写自定义的名称(例如input_token),在Value中粘贴已复制的出参参数。
    配置body定义
  8. 单击施压配置页签,根据实际需要,填写压测并发数和时长等信息。
    说明
  9. 单击页面左下方的保存去压测,即可发起压测。

方式二:手动记录Token并写入业务接口

假设需要压测微信平台上小程序的活动页面。那么,您可以在压测前提前批量获取到平台Token,或者在本地准备些数据(如果业务允许),放在数据文件中,压测时作为全局参数使用。
重要 一般平台Token都存在有效期限制,需要定期刷新才能使用。所以采用该方法请注意确认Token有效期,超过该期限后,压测就无法正常进行。
  1. 新建一个.csv文件(用Excel编辑之后另存为.csv格式,或者用Apache的commons-csv来生成),将Token信息写在一列中,示例如下:
    CSV示例图
    说明 您可以通过线上环境批量获取平台Token,或者如果业务允许的情况下可在本地构造Token数据。
  2. 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测
  3. 填写场景名,例如myAPP,然后在场景配置页签下,填写小程序活动页面接口。
  4. 单击页面底部的数据源管理,在弹出的文件数据源页签单击+上传文件,上传本地准备的.csv文件。上传完毕后,填写参数名,并单击保存
  5. 在压测API名称一栏右侧,将鼠标悬浮于更多图标处,然后选择添加数据配置
    添加数据配置
  6. 单击数据配置一栏右侧的箭头图标展开更多详细设置,在数据源参数设置页签中选择参数名。单击复制图标,复制该参数。
  7. 假设需要在API的Body中传入已复制参数,单击活动页面API的Body定义页签。在Key中填写自定义的名称(例如token),在Value中粘贴已复制的出参参数。
    body定义token
  8. 单击施压配置页签,根据实际需要,填写压测并发数和时长等信息。
  9. 单击页面左下方的保存去压测,即可发起压测。