Apache JMeter 是 Apache 项目下的开源压测工具,有丰富的功能,支持参数化、断言等。PTS 支持 JMeter 原生引擎的压测,并在此基础上,为您提供便捷的横向扩展的能力,同时结合云监控集成能功能持续补强 JMeter 在高并发和监控定位方面的能力和体验。

限制条件

  • 最大并发用户数不能超过资源包的并发规格,参考产品价格
  • 目前该功能默认峰值并发用户数为 5 万;若您需要压测更高并发,可提工单联系我们,即可满足。
  • 该功能和 PTS 原生功能共享并发用户数的额度。例如,您持有一个 278(最大并发用户数 5000)的资源包,PTS 原生压测场景中使用了 1000 并发,那么同时进行的 JMeter 集成功能的压测只能使用 4000 最大并发来启动。
  • 由于共享施压资源,如果碰到压测引擎不足的报错,请稍后重试。

步骤一:导入 JMeter 脚本

  1. 登录 PTS 控制台,在概览页单击 JMeter 原生压测,或者在左侧导航栏选择 创建压测 > JMeter 压测
  2. 发起 JMeter 压测页面,输入场景名称。
  3. 场景配置页签下,单击+上传文件,添加 JMeter 脚本、JAR 文件(即放置在 JMeter 的安装目录 .../lib/ext 下的相关 JAR 文件)和其他数据文件。
    注意 上传的同名文件将覆盖之前上传的文件。如需对比文件,可在该文件的操作列,获取 MD5 值,与您本地文件的 MD5 值进行对比,确认文件是否变更。
    JMeter Test

    使用限制

    • JMX 脚本文件:文件大小不超过 2MB。可上传多个 JMX 脚本文件,但是压测仅能使用一个 JMX 脚本。发起压测前勾选一个使用。
    • JAR 文件:文件大小不超过 10MB。上传之前,请在本地 JMeter 环境调试 JAR 文件,确保调试通过。
    • CSV 和 ZIP 数据文件:文件大小不超过 60 MB。ZIP 内打包的文件必须是以 .csv 结尾的单个文件。

      注意: 1. 准备 CSV 文件时,请不要直接修改 .xlsx 文件的后缀。推荐使用 EXCEL、Numbers 等软件导出,程序生成可以使用 Apache commons-csv。 1. 如果 JMX 脚本中关联了数据文件,务必将 CSV Data Set Config 中的 Filename 改为文件名本身,不要带路径(如下图所示)。否则会读取不到数据文件。同理,如果使用了 __CSVRe 函数或者在 JAR 中有指定文件,均需使用文件名。

      JMeter Data File
  4. 如上传了多个 JMX 文件,勾选一个 JMX 文件作为发起该压测场景使用的 JMeter 脚本。
  5. 可选: 为 CSV 文件勾选切分文件,可以保证该文件的数据在每个施压机不重复。不勾选该项,每个施压机上使用同一份数据。详见 JMeter 使用 CSV 参数文件
  6. 选择 JMeter 版本 和 Java 版本。
    • JMeter 版本:支持 Apache JMeter 5.0、4.0 和 3.3。
    • Java 版本:支持 Java 8。

步骤二:施压配置

单击施压配置页签,并完成施压配置。

JMter Pressure Configuration

配置项说明:

  • 压力来源:可选为国内和阿里云 VPC 内网。

    • 选择国内时,发起压测的节点来自全国各地,根据压测的量级来分配对应的节点资源(IP)。
    • 选择阿里云 VPC 内网时,您需要继续选择地域、VPC-ID、安全组、虚拟交换机等信息,压力来源来自您选择的阿里云 VPC 网络施压机。
    注意
    • 选择地域后,VPC 信息栏下方会显示当前地域下施压源的可用区,确保选择的交换机与施压源在同一可用区内。若您的交换机不在当前地域的可用区内,请单击创建交换机去创建交换机。
    • 确保选择的交换机的空闲 IP 大于等于施压 IP 数。
  • 并发数:指同时发送压测请求的用户数量。并发数受您购买的资源包限制。
  • 指定 IP 数:指定施压引擎的数量,此项为可选项。引擎数增加会带来计费的增加,计费并发 = 引擎数 * 500,且最大引擎数不超过 100。

    注意
    • 增加引擎数会带来计费的增加,请关注施压配置页面右侧的预估消耗 VUM 数。
    • 可设置的最大引擎数受资源包限制,具体可参见指定IP数的帮助提示。
  • 压测时长:指压测总时长,包括预热时间。
  • 预热时间:指压测流量到达已配置的并发数的时间。在这个时间内,并发数递增,直到最大并发数。
  • 循环次数:指每个并发的循环执行次数。注意循环次数达到设置值,或压测时长达到设置值,压测都会停止。

步骤三(可选):添加监控

如果您有云监控或 ARMS 监控实例,通过添加监控的方式,您可以在压测及报告中便捷地查看相应的监控数据。

具体操作及监控数据的查看步骤,参见以下文档:

步骤四:启动压测

  1. 完成基本配置之后,在发起 JMeter 压测页面右上角,单击保存去压测。然后在温馨提示对话框中选择执行周期
    • 选择立即执行。稍等数秒,操作页会进入压测态。JMter Scenes Detail
    • 选择定时压测。以定时任务的方式启动压测,请参见定时压测
  2. 可选: 压测过程中,您可以监控压测数据,进行如下操作。
    • 详情页签下,单击单个链路的右侧图标 Trace,查看其 TPS、成功率、响应时间、流量等实时数据。
    • 选择 JMeter 日志页签,可根据施压机、日志级别、时间范围或施压线程筛选日志,并查看日志详情。
    • 单击页面右上角的查看采样日志,可根据压测 Sampler、响应状态、施压机等筛选日志,查看日志详情。

场景说明

场景概要的指标说明如下。

指标 说明
VUM PTS 的计费单位
压测计时 压测执行的时长,包括预热阶段的时间
场景并发 当前施压的并发值,如果在预热阶段则未达到配置并发,预热结束后即为配置的并发值
场景 TPS(s) 所有 agent 统计周期内的平均 TPS 值再做一次平均所得
RT Avg (ms) 所有 agent 统计周期内的平均 RT 值再做一次平均所得(区分成功与失败)
成功率(%) 所有 agent 统计周期内请求合并计算的整体成功(无断言时2XX、3XX的比例;有断言时为断言成功的比例)情况
说明 监控数据的来源基于 Backend Listener 进行了简单的聚合计算。施压 Agent 的统计采样周期是 15 秒,数据汇总计算的周期也是 15 秒,故可能会有数据延迟的情况。

JMeter 日志详情

JMeter 日志详情包括日志时间、日志级别、线程名、logger 和具体日志信息。

JMter Log

采样日志详情

单击报告页面右上角的查看采样日志,可筛选并查看日志详情。

  1. 根据压测 Sampler、响应状态等筛选日志。在对应的日志操作栏,点击查看详情
    Log
  2. 日志详情对话框中,在 General 页签下查看日志字段和字段值。在对话框右上角切换显示格式:通用HTTP 协议样式。
    Log Details
  3. Timing 页签下查看耗时信息。
    Timing
  4. 如果 JMeter 脚本中配置了从 HTML 文件嵌入资源Embedded Resources from HTML Files),日志详情中会出现子请求详情页签。

    通过选择特定的子请求,可筛选出对应的请求日志。

    Request Detail

    Timing 页签下也将显示总请求耗时和每一个子请求的耗时情况。

    Timing

步骤五:查看压测报告

在压测停止之后,系统会自动收集压测过程中的数据,形成压测报告,展现 JMeter 压测场景和具体指令的压测动态信息。

  1. 在 PTS 控制台左侧菜单栏,单击压测报告,进入压测报告列表页。
  2. 在对应的报告一行的操作栏,单击查看报告
    说明 趋势图中,每个点数据的统计采样周期是 15 秒,最终数据报告上可能初期会有数据延迟的情况。
    Jmeter Report Example

    场景概要的指标说明如下。

    指标 说明
    VUM PTS 的计费单位
    配置最大并发 JMeter 脚本压测编辑时配置的并发值
    场景 TPS(s) 压测周期内,当前场景的平均 TPS 值。TPS = 场景压测期间的全部请求数 / 压测时长。
    RT Avg (ms) 压测周期内,所有请求的平均响应时间 (区分成功与失败)
    成功率(%) 所有请求的整体请求成功(无断言时 2XX、3XX 的比例;有断言时为断言成功的比例)情况
  3. 可选: 场景详情动态视图区域,您可以查看全场景或单个请求,在整个压测周期内的具体指标表现。
  4. 可选: JMeter 日志页签下,可根据施压机、日志级别、时间范围或施压线程筛选日志,并查看日志详情。请参考上文的 JMeter 日志详情。
  5. 可选: 在页面右上角单击查看采样日志,可筛选日志并查看请求日志中展现的字段、字段值和耗时详情。请参考上文的采样日志详情。

步骤六(可选):导出压测报告

如您需要,可以将当前压测报告导出至本地。

  1. 测试报告页,单击右上角的报告导出,选择是否包含阿里云 PTS 水印版本。
  2. 进入网页版报告页面,单击下载报告,可将压测报告(PDF)下载至本地。