使用PTS监测日常业务

随着移动互联网的日益普及,业务连续性的要求越来越高,如何先于用户发现不同地域或者运营商网络下的核心功能可用性问题是所有移动互联网场景下的业务都需要思考或者解决的问题。本文以典型的电商业务为例,介绍如何使用PTS进行日常业务的监测。

背景信息

现在用户需要一种动态API的监控方式,而且是基于特定业务含义场景下的API监控,结合不同地域和运营商的边缘计算的节点算力去探测全国范围甚至是全球范围内的核心动态业务的可用性和性能。

典型的电商核心业务场景一般包括以下流程:登录>查看类目商品列表>查看子商品信息>添加购物车>确认订单,前后API之间可传递参数。对于电商中的核心业务,需每天监测,保证业务表现正常,如出现失败,可及时排查。

本文以典型的电商业务为例:每天20:00发起一次探测(实际可以设置更高的频率),如果压测中请求成功率低于100%即停止压测,PTS会通过钉钉机器人通知进而可以排查异常。

操作流程

  1. 创建压测场景。

    根据业务模型构建压测场景,该示例中将使用电商典型场景,并在API之间进行参数传递。具体操作步骤,请参见步骤一:创建压测场景

  2. 配置压测量级。

    根据业务压测需要设置,该示例中将设置每个接口1 RPS。具体操作步骤,请参见步骤二:配置压测量级

  3. 设置定时任务。

    该示例中将设置每天执行一次压测任务。定时压测任务设置成功后,PTS将定时自动发起压测。具体操作步骤,请参见步骤三:设置定时任务

步骤一:创建压测场景

根据业务模型构建压测场景,该示例中将使用电商典型场景,并在API之间进行参数传递。

  1. 登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测

  2. 创建PTS场景页面,填写场景名称。

  3. 单击页面右下角的数据源管理,导入参数文件。为该场景准备文件参数,具体操作步骤,请参见文件数据源

    该示例中导入了两个参数文件,共定义了3个参数,分别是username、password、itemID_global,如下图所示。

    定义参数

  4. 创建PTS场景页面,编排业务接口(API)。

    该示例为电商业务,共编排了五个业务接口(API):登录、查看类目商品列表、查看子商品信息、添加购物车、选做_确认订单。并设置了API之间的参数传递。

    1. 场景配置页签中单击添加指令右侧的下拉箭头,然后从下拉列表中,选择数据配置

      单击数据配置一栏右侧的箭头图标展开更多详细设置。在数据源参数设置页签,设置数据配置相关参数。具体操作步骤,请参见数据配置指令

      说明

      数据轮询一次:选择该选项,表示该接口的文件参数数据只轮询一次。例如用户数据的文件参数有1000行,则压测轮询一次1000个用户数据后就会停止压测。

    2. 数据配置一栏的下方填写第一个API登录基本请求信息Body定义页签中的用户名和密码。

      • 压测URL:输入具体的业务接口。

      • 请求方式:POST。

      • 使用已导入的文件参数username和password。根据业务需要,也可以在Body中定义其他内容,如下图中的signon即自定义的Body内容。定义用户名和密码

    3. 新建并填写第二个API查看类目商品列表的基本请求信息。

      • 压测URL:输入具体的业务接口。

      • 请求方式:GET。

      • 选择出参定义,提取productId作为出参,传递给下一个API。提取prouductid

    4. 新建并填写第三个API查看子商品信息的信息。

      • 基本请求信息页签的压测URL区域,带入上一个API提供的参数productId查看子商品请求信息

      • 出参定义页签中,提取出参itemID提出itemID

    5. 新建并填写第四个API添加购物车的信息。

      • 基本请求信息页签的压测URL区域,带入上一个API提供的参数itemID添加购物车

      • 出参定义页签中提取出参prod_item_Id_check提出prod_item_id_check

      • 检查点(断言)页签,设置检查点,product ID小于1000时该业务断言成功,否则为失败。断言定义

    6. 新建并填写第五个API选做_确认订单的基本请求信息。

    场景创建成功后,如下图所示。

    创建场景成功

步骤二:配置压测量级

由于是业务监测,该示例中将每个接口的起始RPS设置为1。

  1. 创建PTS场景页面,输入压测配置信息。

    设置项

    目标选项

    压力来源

    选择国内公网

    压力模式

    选择RPS模式(Requests Per Second)

    压测总时长

    设置为1分钟

    设置各接口API

    最大RPS

    设置为10

    起始RPS

    设置为1

步骤三:设置定时任务

该示例中将设置每天执行一次压测任务。定时压测任务设置成功后,PTS将定时自动发起压测。

  1. 创建PTS场景页面下方,单击调试场景。定时任务的前提是压测能够顺利执行,所以设置定时任务前,需进行场景调试。

    稍等数秒后,查看场景调试页面,API响应符合预期即表示成功。

    场景调试

  1. 登录PTS控制台,在左侧导航栏选择性能测试 > 定时压测

  2. 在页面右侧单击创建定时任务,配置定时任务选项,完成后单击确定

    配置项

    说明

    任务名称

    填写任务名称,字数限制为30个字符以内。

    关联场景

    下拉列表中,选择步骤一:创建压测场景中配置的场景名。

    执行频率

    设置每天12点整执行一次压测任务。

    crontab 表达式展示(不带秒):0 12 * * ?image

    执行通知方式

    可多选:

    • 压测开始前通知。

    • 压测结束后通知。

    通知对象及通知方式

    选择通知对象和方式:

    • 通知对象:选择在PTS中已创建的联系人作为通知对象。

    • 通知方式:选择短信、邮件或钉钉作为通知方式,目前仅支持钉钉。

    说明

    关于如何创建联系人,请参见管理接收人

    多场景是否强制同时启动

    选择是否同时启动多个场景的定时压测任务。