微服务压测功能支持对构建于专有网络VPC(Virtual Private Cloud)内的微服务应用进行压测。通过PTS界面的配置,可以快速实现微服务压测。本文介绍如何对Dubbo微服务进行压测。
前提条件
本地泛化调用已通过。
背景信息
经典微服务架构是通过网关暴露每一个服务,且通过网络隔离来保障每个服务的安全性,因此云上微服务通常构建于安全性较高的VPC网络内。但压测VPC内的微服务应用会面临网络隔离的难题,传统的解决方案是基于VPC网络搭建压测工具进行压测,例如JMeter压测工具。但搭建JMeter需要一定的时间成本和代码基础,且对微服务压测的支持不友好。
PTS自研的微服务压测功能可以解决这些难题,通过PTS控制台的简单配置,快速实现微服务的压测。
功能入口
登录PTS控制台,选择 ,然后单击Dubbo压测。
在创建微服务场景页面,填写场景名,选择压测应用来源,然后选择地域和微服务空间。
在场景配置页签下,单击+添加Dubbo3节点,为目标业务会话添加所需的测试节点。
场景配置
单击业务会话右侧的图标,展开业务会话,并配置基本信息、出参、检查点等信息。
参数 | 描述 | 示例 |
应用 | 应用名称。 | testapp |
接口名 | 暴露服务的接口。 | com.alibaba.pts.dubbo.api.DemoService |
注册中心类型 | 包括ZooKeeper、Nacos、Redis和直连类型。 | Nacos |
节点 | 微服务注册中心的IP地址。格式为 重要 对于微服务引擎MSE用户,注册中心地址填写方式取决于是否配置命名空间。
| 192.168.0.0:8080 |
组别 | Dubbo微服务组别Group。 | testgroup |
版本 | Dubbo微服务版本Version,默认版本1.0。 | 1.0 |
方法名 | 暴露服务的方法。 | sayHello |
连接超时 | Dubbo接口建立连接的超时时间。 | 5000 |
响应超时 | Dubbo接口获取响应的超时时间。 | 20000 |
服务参数
参数 | 描述 | 示例 |
普通参数 | 需要压测服务的函数包含的普通参数。 |
|
隐式参数 | 需要压测服务的函数包含的隐式传递参数。 |
|
出参设置
在串联链路的出参设置页签设置出参。具体操作,请参见接口出参。
检查点设置
在串联链路的检查点设置页签设置检查点。具体操作,请参见检查点(断言)。
(可选)控制器和定时器
您可以根据不同压测场景的需求,添加控制器和定时器。
在场景配置页签下,单击+添加控制器选择所需的控制器。
循环控制器:控制所含测试节点应循环执行的次数。
选择循环控制器后,单击其右侧的图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。
事务控制器:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本和是否包含样品中定时器和前后程序的持续时间两个设置项。
生成父样本:
开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点和定时器平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
在场景配置页签下,单击+添加定时器选择所需的定时器。
常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
同步定时器:可设置停顿时长和模拟用户数,表示在一定时间内先等待达到一定用户数,然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准和可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准和可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按照吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程、所有活跃线程、当前链路下活跃线程、全局活跃线程和当前链路下全局活跃线程。
施压配置
压测配置 | 描述 |
压力来源 |
|
压力模式 |
|
递增模式 |
|
最大虚拟用户数 | 虚拟用户模式下,需要指定全场景的最大虚拟用户数。 |
递增百分比 | 阶梯递增模式下,需要指定递增百分比。 |
单量级持续时长 | 阶梯递增模式下,为保证能在单量级持续过程中发现业务问题,单量级持续时长至少设置1分钟。 |
压测总时长 | 自动递增时,总时长 >= 单量级持续时长/递增量级 * 1.1 (向上取整),但不可超过24小时。 |
指定IP数 | 指定压测来源的IP个数。具体详情,请参见指定施压IP数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。具体详情,请参见定制流量。 |
启动压测
分析压测结果
压测结束后,系统会自动获取压测数据,例如压测场景指标、业务详情数据、监控详情数据和API采样日志等,生成压测报告。更多信息,请参见查看PTS压测报告。