更新时间:2024-10-21 GMT+08:00

使用JMeter原生压测

  1. JMeter测试计划调试成功后,保存jmx文件以及csv文件。
  2. 准备测试资源,创建私有资源组。

    1. 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”,单击“创建私有资源组”。
    2. (可选)首次使用时,请根据提示信息,授权性能测试服务创建私有资源组。
    3. 进入创建资源组页面后,如果是首次使用没有云容器引擎服务CCE集群,需要先执行创建集群然后再创建资源组。如果已有可用的云容器引擎服务CCE集群,直接执行创建资源组
    4. 创建集群。

      单击页面上方的“创建集群”,进入购买CCE集群页面。创建集群操作请参考购买CCE集群,设置集群参数。

      • 推荐使用独立CCE集群用作压测,避免与测试或生产等环境CCE集群混用产生配置等冲突。

        插件选择时,作为测试执行机仅保留默认安装即可,如节点本地域名解析加速、云原生监控插件等非必要插件请去除勾选,避免安装的插件占用执行机资源。

      • 集群管理规模选择与执行节点个数相关,请根据需要压测的并发用户数,创建对应规格的节点。例如,需要20个执行节点,那么创建集群时集群规模选择50节点即可满足业务需求。
      • CCE集群的网络模型建议选择“容器隧道网络”,容器网段和服务网段需要与被测对象保持一致。
      • CentOS在高负载网络下容易出现IPVS、Conntrack相关稳定性问题,选择IPVS时不推荐您使用CentOS作为集群节点的操作系统。选择IPVS+CentOS时,网络连接复用可能存在超时。

      单击“下一步:插件选择”,选择创建集群时需要安装的插件。

      单击“下一步:插件配置”,默认选择即可,不需要更改。

      单击“下一步:确认配置”,确认集群配置信息无误后,勾选已阅读使用说明,单击“提交”等待集群创建,集群创建预计需要6-10分钟。

      集群创建成功后,返回集群管理页面,单击要创建节点的集群所在行的,进入创建节点页面。创建节点操作请参考创建节点,设置节点参数。

      • 节点规格至少为vCPU为4核,内存8GB。
      • 操作系统需选择欧拉EulerOS。
      • 创建的节点数量至少需要2台(1台调试节点、1台执行节点),具体数量由压测对象要求规格决定。例如,压测10万并发用户数,vCPU为4核,内存8GB的资源需要21个执行节点(1个调试节点,20个执行节点)。
      • 当CCE集群节点与被测应用不在同一VPC网络时,建议CCE集群节点绑定弹性IP。可使用已有的弹性IP,如果没有弹性IP也可以选择自动创建。自动创建弹性IP时,计费方式推荐按流量计费,带宽设置尽可能选择较大值,否则可能影响压测效果。系统根据您的配置创建弹性IP,并自动为每个节点进行分配。当创建的弹性IP数量小于节点个数时,会将弹性IP随机绑定到节点上。
      • “高级配置(可选)”中的“K8s节点名称”选择“与节点私有IP保持一致”,默认即为此选项。选择“与云服务器名称保持一致”将导致节点无法纳管。

      单击“下一步:规格确认”,确认节点配置信息无误后,勾选已阅读使用说明,单击“提交”等待节点创建。

      节点创建成功后,返回性能测试服务控制台。

    5. 创建资源组。

      在左侧导航栏中选择“测试资源”,单击“创建私有资源组”

      参照表1设置基本信息。
      表1 创建私有资源组

      参数

      参数说明

      资源组名称

      新建私有资源组的名称,可自定义。

      节点集群

      在下拉框选择已创建的CCE集群。

      调试节点

      选择执行压测的管理机。

      调试节点在资源组创建成功后不可修改。

      执行节点

      选择执行压测的执行机,即在压测过程中能够提供自身性能数据的施压目标机器。

      单击“创建”

  3. 创建JMeter测试工程。

    返回性能测试服务控制台,在左侧导航栏中选择“JMeter测试工程”,单击创建JMeter测试工程,输入工程名称,单击“确定”

  4. 导入jmx文件。

    1. 在JMeter测试工程页面,单击编辑测试计划。
    2. 测试计划页签中,单击“创建测试计划”。
    3. 在弹出的窗口中单击“添加文件”,选择格式为jmx的文件,单击“上传文件”,导入成功后将自动关闭窗口并返回“测试计划列表”页签,可以看到已添加的测试计划。
      图1 导入jmx文件
      • jmx文件大小限制为10M。
      • 当前支持基本的JMeter脚本,包括线程组、HTTP请求、HTTP信息头管理器、请求参数、超时时间,BeanShellt等。建议您使用5.2.1以上版本的脚本进行导入,以免出现脚本解析错误。
    4. (可选)在测试计划页签中,单击“第三方jar包”,在弹出的窗口中单击“本地导入”,选择测试计划所依赖的jar包并导入,导入成功后关闭窗口。
      图2 导入jar包
      • Java 9及以上版本暂不支持第三方jar包上传功能。
      • jar包名称长度上限为64字节(含后缀),大小上限为80M。

  5. (可选)导入变量文件。

    在“测试计划”列表对应的测试名称后单击,选择“变量文件”。在弹出的窗口中单击“本地导入”,选择测试计划所引用的变量文件并导入,导入成功后“关闭”窗口。

    图3 导入变量文件1
    图4 导入变量文件2

  6. 编辑线程组。

    单击JMeter测试计划的任务名称进入线程组列表,可以编辑线程组的部分参数,编辑完成后单击“确定”。
    • 线程数:对应JMeter本地程序中的“Number of Threads”
    • 预热时间:对应JMeter本地程序中的“Ramp-up period”
    • 循环次数:填写需要测试的循环数。
    图5 编辑线程组

  7. 调试JMeter测试任务。

    单击“调试”,选择对应的测试资源组作为执行器后单击“启动”启动调试。如果调试结果报错,可根据日志信息,修改用例后重新调试。

    图6 启动调试

  8. 执行JMeter测试任务。

    单击“启动”,在“启动测试任务”对话框中选择“资源组类型”和“企业项目”后,单击“启动”,启动测试任务。
    图7 启动测试任务

  9. 查看测试报告。

    测试任务启动成功后,单击“查看报告”,可以查看压测过程中各项指标的监控数据以及图表报告。

    压测结束后,系统会生成离线测试结果报告,可下载离线报告,查看已经执行完成的测试任务报告。