使用JMeter压测模拟上传

使用JMeter压测的模拟上传功能,可对文件、图片的上传接口进行压测。本文为您介绍如何使用Apache JMeter客户端构造脚本,并在PTS控制台完成上传接口压测。

前提条件

  • 开通PTS服务

  • 本示例使用Apache JMeter 5.6.3来创建脚本,PTS支持JMeter 5.0 和 5.6.3。

方案概览

在进行大规模测试时,JMeter自身的性能可能成为瓶颈,尤其是在单机模式下。即使使用JMeter的分布式测试功能,将负载分布到多台机器上。也很难做到统一调度和数据收集。此外,JMeter内置的报告和分析功能可能不够直观,难以满足复杂的分析需求,常常需要使用外部工具如Grafana、Kibana等进行数据可视化和分析。性能测试PTS的JMeter压测提供便捷的横向扩展能力,同时结合云监控集成功能持续补强JMeter在高并发和监控定位方面的能力和体验。

使用性能测试PTS的JMeter压测功能模拟图片上传可分两部分配置。

  1. 首先需要在本地计算机安装Apache JMeter 5.6.3来创建脚本。

  2. 将脚本和图片上传到JMeter压测的场景中,并做进一步调试。调试成功后,可在此发起压测。

步骤一:使用Apache JMeter客户端构造上传脚本

  1. 配置HTTP请求的属性,包括服务器名称或IP地址、端口号、HTTP方法(如POST)、路径(上传接口的路径)、文件上传的参数等。

    image

    Basic页签配置项说明:

    • Protocol:选择httphttps

    • Server name or IP:接口域名,例如www.example.com

    • Port Number:服务端口号,例如5000

    • Method:选择POST

    • Path:上传接口的路径,例如/upload

    Files Upload页签配置项说明:

    • File Path:文件需上传到JMeter场景中,这里直接写文件名,不要带本地路径。例如test.jpg

    • Parameter Name:输入文件上传表单的参数名称,例如fileToUpload

    • MIME Type:输入文件的 MIME 类型,例如image/jpeg

  2. 添加所需的HTTP头信息。

    上传接口一般需要配置Cookie和Content-Type。本示例不涉及登录操作,暂不设置Cookie,只配置Content-Type。image

  3. 运行测试计划,并在View Results Tree中查看结果,返回以下信息表示上传成功。image

  4. 调试成功后,导出测试计划文件,此处命名为uploads.jmx

步骤二:创建并启动JMeter压测

  1. 登录PTS控制台,选择性能测试 > 创建场景,然后单击JMeter压测

  2. 场景配置

    1. 输入场景名。

    2. 场景装配页面,上传步骤一:使用Apache JMeter客户端构造上传脚本中导出的uploads.jmx文件。

    3. 单击上传文件,添加一个图片文件,文件名必须和uploads.jmx中配置的一致。image

    4. 选择JMeter 版本,此处选择5.6.3。注意与创建脚本使用的本地JMeter版本保持一致,否则可能会报错。image

  3. 施压配置

    本示例从阿里云VPC内网发起压测。压测会产生相关费用,您可根据需要合理选择压力来源以及施压参数。更多信息请参考压力模式与量级配置计费概述image

  4. 调试并启动压测

    1. 调试场景可验证配置是否合理,避免压测失败,建议您先调试场景。

    2. 场景调试成功后,单击保存去压测,在温馨提示页面,选择立即执行并勾选确认本次压测已获得准许并遵守当地法律,然后单击启动压测

分析压测结果

压测结束后,系统会自动获取压测数据,例如压测场景指标、业务详情数据、监控详情数据和API采样日志等,生成压测报告。更多信息,请参见查看JMeter压测报告