Apache JMeter是Apache的开源压测工具,支持参数化、断言等功能。其丰富的开源生态提供了各种协议和控制器的扩展,同时可以通过自定义脚本编写参数处理等逻辑。PTS支持JMeter原生引擎的压测,并在此基础上,为您提供便捷的横向扩展能力,同时结合云监控集成功能持续补强JMeter在高并发和监控定位方面的能力和体验。本文介绍PTS原生JMeter压测的优势和操作步骤。
PTS原生JMeter压测的优势
- 功能强大
- 简单安装的云端录制器,一键构建压测场景。更多信息,请参见录制Chrome浏览器场景。
- 提供JMeter插件,在本地一键启动云上分布式压测。更多信息,请参见使用PTS-JMeter Plugin专属插件。
- 共享的JMeter运行环境管理,团队成员可共同管理依赖Jar包、jmeter.properties的运行环境,无需每个人在本地单独配置。
- 流量支持动态秒级调整,百万QPS亦可瞬时脉冲。
- 强大的报表功能,将压测客户端的实时数据做多维度细分展示和统计,同时自动生成报告供查阅和导出。
- 支持压测问题诊断,快速定位问题链路,压测过程提供日志明细查询,方便问题排查。更多信息,请参见基于PTS压测轻松玩转问题诊断。
- 支持压测中的监控导出,定制压测监控大盘。更多信息,请参见如何将JMeter压测的指标数据输出到Prometheus。
- 流量真实
- 流量来源于全国上百城市覆盖各运营商(可拓展至海外),真实模拟最终用户的流量来源,相应的报表、数据更接近用户真实体感。
- 施压能力较强,最高支持千万RPS的压测流量。
- 配套完善
除了压测平台之外,可付费增值提供全链路压测解决方案输出,全方位保障站点平稳应对业务峰值。
限制条件
- 最大并发用户数不能超过资源包的并发规格,请参见产品价格。
- JMeter压测功能和PTS原生功能共享并发用户数的额度。例如,您持有一个基础版按量抵扣PTS压测资源包(最大并发用户数50000)的资源包,PTS原生压测场景中使用了10000并发,那么同时进行的JMeter集成功能的压测只能使用40000最大并发来启动。
步骤一:导入JMeter脚本
步骤二:施压配置

参数 | 描述 |
---|---|
压力来源 |
|
压力模式 | 压力模式有两种:并发模式(虚拟用户模式)、RPS模式(Requests Per Second,每秒请求数,吞吐量模式)。
|
流量模型 | 并发数的递增模型。选择不同的流量模型,页面右侧的压力预估图会同时刷新。
|
最大并发 | 虚拟用户发起请求的个数。例如:100个并发数就是100个虚拟用户同时发起了请求。 |
起始百分比 | 当流量模型选择的是手动调速时,需要配置该项。举例说明:当最大并发设置为100,起始百分比设置10%时,会以10个并发数启动压测,压测过程中,最高可以手动调速到100;若不选择手动调速,就会以10个并发数一直压测到结束。 |
起始RPS | 在RPS模式下,需要设置全局的起始RPS。 |
最大RPS |
在RPS模式下,摸底的是服务端吞吐能力,故需要给压测场景设置全局的起始RPS与最大RPS。 RPS模式的流量模型是按从起始RPS到最大RPS均匀递增的模型。 |
压测时长 | 设置压测的时间长度。 |
递增时长 | 全部并发从0到全部运行起来的时间。当流量模型选择的是均匀递增或者阶梯递增时,需要配置该递增时长。 |
递增阶梯数 | 完成递增时间段的阶梯数。当流量模型选择的是阶梯递增时,需要配置该递增阶梯数。 |
是否指定循环 | 默认是,循环是JMeter特有的,指每个并发是否需要循环执行。并需要设置循环次数,指定每个并发需要循环执行几次。在RPS模式下,可以指定循环。 |
循环次数 | 每个循环的并发执行次数。在指定循环后,需要设置循环次数。 |
指定IP数 | 指定压测来源的IP个数。 |
流量地域定制 | 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。
在施压配置中,打开流量地域配置开关,您可以按业务需求为地域设置机器数,系统会根据设置的机器数,为不同地域平均分配流量比例。在页面右侧可以看到流量分布的饼图。
![]() 说明
|
IPv6流量 | 默认是关闭的,开启后,可以对IPv6的地址进行压测。 |
(可选)步骤三:添加监控
通过添加监控的方式,您可以在压测过程和压测报告中便捷地查看相应的监控数据。具体操作及监控数据的查看步骤,请参见云监控。
步骤四:启动压测
- 完成基本配置之后,单击保存去压测。在温馨提示对话框中选择执行周期。
- 选择立即执行。待压测准备完成,操作页会进入压测状态。
- 选择定时压测。以定时任务的方式启动压测,请参见定时压测。
- 可选:压测过程中,您可以监控压测数据,进行场景调速等操作。
数据信息
数据信息 | 说明 |
---|---|
实时VUM | 本次压测消耗的资源总数,单位是VUM(每虚拟用户每分钟),更多信息,请参见常见问题。 |
请求成功率(%) | 所有Agent统计周期内全场景请求成功率。 |
平均RT(成功/失败) |
|
TPS | 所有Agent统计周期内的总请求数除以时间(单位:秒(s))所得。 |
异常数 | 请求异常的数量。导致请求异常的可能原因较多,常见的例如连接超时、请求超时等。 |
流量(请求/响应)/s | 施压机发送请求的流量和接收响应的流量。 |
并发(当前/最大) | 施压的并发值。若在压测过程中设置了场景调速,会分别显示当前并发值和配置最大并发值。如果在预热阶段则未达到配置并发,预热结束后即为配置的并发值。 |
总请求数 | 整个场景在压测过程中发出去的总请求数。 |
配置信息
配置信息页罗列了场景配置中的基本信息,包括压力来源、配置时长、流量模型、指定IP数等信息。
压测信息
- 在场景详情页签下,支持场景调速功能。单击场景调速,在场景调速中输入需要并发的数字或百分比,可在压测过程中进行场景并发的调整。单击单个链路的右侧查看图表,查看其TPS、成功率、响应时间、流量等实时数据。
- 选择压测日志页签,可根据施压机、日志级别、时间范围或施压线程筛选日志,并查看日志详情。
- 选择施压机性能页签,显示了压测过程中所有施压机的CPU使用率、Load5、内存利用率、网络流量的时序曲线等信息。您还可以筛选查看特定施压机的性能信息。
- 若您添加了ECS监控、SLB监控、RDS监控和ARMS监控等,可以选择云监控详情页签,查看相关监控信息。具体操作,请参见查看监控详情。
采样日志详情
选择采样日志页签,可根据压测Sampler、响应状态、RT范围等筛选日志,查看日志详情。
步骤五:查看压测报告
在压测停止之后,系统会自动收集压测过程中的数据,形成压测报告,展现JMeter压测场景和具体指令的压测动态信息。
(可选)步骤六:导出压测报告
如您需要,可以将当前压测报告导出至本地。
- 在报告详情页面,单击报告导出。
- 选择有水印版本或无水印版本,可将压测报告(PDF)下载至本地。
原生JMeter压测的场景示例
PTS的原生JMeter压测适用于以下几种场景。具体使用场景示例,请参见JMeter模拟上传。
- 需要高并发分布式压测
- 需要压测时观测实时秒级监控,压测后自动生成压测报告
- 需要统一管理JMeter脚本、JMeter环境依赖
参考文档