使用PTS监测日常业务

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

背景信息

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

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

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

操作流程

  1. 创建压测场景。

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

  2. 配置压测量级。

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

  3. 设置SLA。

    根据业务要求设置SLA监控指标和规则,该示例中将设置请求成功率低于100%时即停止压测,出现异常就需要人为介入排查问题。该示例中的SLA比较严格,适用于核心业务。具体操作步骤,请参见步骤三:设置SLA

  4. 设置定时任务。

    该示例中将设置每天执行一次压测任务。定时压测任务设置成功后,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场景页面,选择施压配置页签。

  2. 施压配置页签,输入压测配置信息。

    设置项

    目标选项

    压力来源

    选择国内公网

    压力模式

    选择RPS模式(Requests Per Second)

    压测总时长

    设置为1分钟

    设置各接口API

    最大RPS

    设置为10

    起始RPS

    设置为1

步骤三:设置SLA

根据业务要求设置SLA监控指标和规则,该示例中将设置请求成功率低于100%时即停止压测,出现异常就需要人为介入排查问题。

  1. 创建PTS场景页面,单击SLA定义页签,单击创建SLA,填写SLA名称、选择业务分类。

  2. SLA规则下方单击+添加规则,在添加SLA规则窗口中设置成功率低于100%时停止压测,如下图所示。

    添加SLA规则

  3. 返回创建SLA页面,保持SLA的适用对象为空,即该规则适用于全部API。

  4. 高级设置区域,选择停止压测的联系人,选择钉钉作为通知方式。

    说明

    需提前创建联系人,具体操作步骤,请参见管理接收人

步骤四:设置定时任务

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

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

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

    场景调试

  2. 单击创建PTS场景页面下方的保存去压测执行周期选择定时压测,然后配置其他参数。

    • 任务名称:输入定时任务名称。

    • 执行频率:选择定期执行,在时间窗口中选择20:00,并在日粒度下选择全部。您可以在当前页面预览最近五次压测的时间。

    • 执行通知时间压测开始前通知

    • 执行通知方式:选择通过钉钉通知。

    • 执行通知对象:选择已创建的联系人。

  3. 单击确定,完成创建。

    指定日期和时间,系统将自动发起压测。

    每次压测时的请求正确率不足100%时,钉钉将收到压测已停止的通知,可能就代表业务有异常了,需要及时排查跟进。