全部产品

JMeter 原生压测

更新时间:2019-07-26 16:29:05

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

限制条件

  • 最大并发用户数不能超过资源包的并发规格,参考产品价格
  • 目前该功能峰值并发用户数为 5 万;即使您购买的资源包最大并发用户数是5万及以上,也受此限制。
  • 该功能和 PTS 原生功能共享并发用户数的额度。例如,您持有一个 278(最大并发用户数 5000)的资源包,PTS 原生压测场景中使用了 1000 并发,那么同时进行的 JMeter 集成功能的压测只能使用 4000 最大并发来启动。
  • 由于共享施压资源,如果碰到压测引擎不足的报错,请稍后重试。

步骤一:导入 JMeter 脚本

  1. 登录 PTS 控制台,在概览页单击 JMeter 原生压测,或者在左侧导航栏选择 创建压测 > JMeter 压测

  2. 发起 JMeter 压测页面,输入场景名称。

  3. 场景配置页签下,单击+上传文件,添加 JMeter 脚本、JAR 文件(即放置在 JMeter 的安装目录…/lib/ext 下的相关 JAR 文件)和其他数据文件。

    注意:上传的同名文件将覆盖之前上传的文件。如需对比文件,可在该文件的操作列,获取 MD5 值,与您本地文件的 MD5 值进行对比,确认文件是否变更。

    上传文件

    使用限制

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

      注意

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

        数据文件定义

  4. 如上传了多个 JMX 文件,勾选一个 JMX 文件作为发起该压测场景使用的 JMeter 脚本。

  5. (可选)为 CSV 文件勾选切分文件,可以保证该文件的数据在每个施压机不重复。不勾选该项,每个施压机上使用同一份数据。详见 JMeter 使用 CSV 参数文件

  6. 选择 JMeter 版本 和 Java 版本。

    • JMeter 版本:支持 Apache JMeter 5.0、4.0 和 3.3。
    • Java 版本:支持 Java 8。

步骤二:施压配置

单击施压配置页签,配置以下项:

配置项 说明
指定 IP 数 指定施压引擎的数量,此项为可选项。引擎数增加会带来计费的增加,计费并发 = 引擎数 * 500,且最大引擎数不超过 100。
并发数 指同时发送压测请求的用户数量。并发数受您购买的资源包限制。
指定 IP 数 选择该选项可扩展施压的引擎数。
注意
1. 增加引擎数会带来计费的增加,请关注施压配置页面右侧的预估消耗 VUM 数。
2. 可设置的最大引擎数受资源包限制,具体可参见指定IP数的帮助提示。
压测时长 指压测总时长,包括预热时间。
预热时间 指压测流量到达已配置的并发数的时间。在这个时间内,并发数递增,直到最大并发数。
循环次数 指每个并发的循环执行次数。注意循环次数达到设置值,或压测时长达到设置值,压测都会停止。

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

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

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

步骤四:启动压测

完成基本配置之后,在发起 JMeter 压测页面右上角,单击保存去压测,发起压测。

稍等数秒,操作页会进入压测态。页面概览如下。

保存去压测

压测过程中,您可以监控压测数据,进行如下操作:

  • 详情页签下,单击单个链路的右侧图标 91788_2,查看其 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 和具体日志信息。

91788_1

采样日志详情

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

  1. 根据压测 Sampler、响应状态等筛选日志。在对应的日志操作栏,点击查看详情

    日志筛选

  2. 日志详情对话框中,在 General 页签下查看日志字段和字段值。在对话框右上角切换显示格式:通用HTTP 协议样式。

    general

  3. Timing 页签下查看耗时信息。

    日志详情

  4. 如果 JMeter 脚本中配置了从 HTML 文件嵌入资源Embedded Resources from HTML Files),日志详情中会出现子请求详情页签。

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

    子请求日志

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

    子请求耗时

步骤五:查看压测报告

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

  1. 在 PTS 控制台左侧菜单栏,单击压测报告,进入压测报告列表页。

  2. 在对应的报告一行的操作栏,单击查看报告

    说明:趋势图中,每个点数据的统计采样周期是 15 秒,最终数据报告上可能初期会有数据延迟的情况。

    压力测试报告

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

    指标说明
    VUMPTS 的计费单位
    配置最大并发JMeter 脚本压测编辑时配置的并发值
    场景 TPS(s)压测周期内,当前场景的平均 TPS 值。TPS = 场景压测期间的全部请求数 / 压测时长。
    RT Avg (ms)压测周期内,所有请求的平均响应时间 (区分成功与失败)
    成功率(%)所有请求的整体请求成功(无断言时 2XX、3XX 的比例;有断言时为断言成功的比例)情况
  3. (可选)在场景详情动态视图区域,您可以查看全场景或单个请求,在整个压测周期内的具体指标表现。

  4. (可选)在 JMeter 日志页签下,可根据施压机、日志级别、时间范围或施压线程筛选日志,并查看日志详情。参考 JMeter 日志详情
  5. (可选)在页面右上角单击查看采样日志,可筛选日志并查看请求日志中展现的字段、字段值和耗时详情。参考采样日志详情
  6. 步骤六(可选):导出压测报告

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

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

    相关文档