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

背景信息

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

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

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

操作流程

该示例中涉及的主要操作流程如下:

  1. 创建压测场景。

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

  2. 配置压测量级并指定地域。

    根据业务压测需要设置,该示例中将设置每个接口1 RPS,同时指定流量设置为华北区域。具体操作步骤请参见步骤二:配置压测量级并指定地域

    说明 根据运营商和地域设置压测流量的来源,是可选步骤,您可以根据自己的业务需要选择是否使用,不指定则PTS会随机调度全国范围内的节点。
  3. 设置 SLA。

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

  4. 设置定时任务。

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

步骤一:创建压测场景

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

  1. 登录PTS 控制台,在左侧导航栏选择创建压测 > 创建PTS场景
  2. 创建压测页面,填写场景名称。
  3. 单击页面右上角的数据源管理,导入参数文件。为该场景准备文件参数,具体步骤请参见使用文件参数

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

    定义参数
  4. 创建压测页面,编排业务接口(API)。

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

    具体步骤如下:

    1. 场景配置页签中单击+ 添加压测API右侧的下拉箭头,然后在下拉列表中单击添加数据配置节点

      单击文件参数设置页签,设置数据配置相关参数,详情请参见添加数据配置节点

      数据配置节点
      说明 数据轮询一次:选择该选项,表示该接口的文件参数数据只轮询一次。例如用户数据的文件参数有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选做_确认订单的基本请求信息。

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

    创建场景成功

步骤二:配置压测量级并指定地域

由于是业务监测,该示例中将每个接口设置1的起步RPS,同时指定流量按照比例来自是华北地域。

具体步骤如下:

  1. 创建压测页面,选择施压配置页签,压力来源选择国内公网压测模式选择RPS模式,设置各接口API的最大RPS为10即可,起始RPS都设置为1,压测时长1分钟即可,如下图所示。
    文档-业务监测配图1
  2. 选择流量定制(指定地域、运营商来源),单击详细配置,指定压测来源为华北地区100%。如下图所示。
    文档-业务监测配图2

步骤三:设置SLA

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

具体步骤如下:

  1. 创建压测页面,选择SLA定义页签,单击创建SLA,填写SLA名称、选择业务分类。
  2. SLA规则下方单击+添加规则,在添加SLA规则窗口中设置成功率低于100%时停止压测,如图所示。
    添加SLA规则
  3. 返回创建SLA页面,保持SLA的适用对象为空,即该规则适用于全部API。
    置空使用对象
  4. 高级配置区域,选择停止压测的联系人,选择钉钉作为通知方式,如图所示。
    高级设置
    说明 需提前创建联系人,具体步骤参见管理接收人

步骤四:设置定时任务

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

具体步骤如下:

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

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

    场景调试
  2. 单击创建压测页面右上角的保存去压测执行周期选择定时压测。配置其他项:
    • 执行频率:选择定期执行,在时间窗口中选择20:00,并在日粒度下选择全部。您可以在当前页面预览最近五次压测的时间。
    • 执行通知方式压测开始前通知
    • 通知对象及通知方式:选择已创建的联系人,并通过钉钉通知。

    如图所示:

    配置其他项
  3. 单击确定,完成创建。

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

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