linux下Jmeter分布式压测

linux下Jmeter分布式压测

一、使用缘由

目的:通过压测,熟悉项目的各项指标,同时观察压测结果及监控数据,目的是根据各项数据尝试调整各项参数完成单机调优。

目前,自动化构建+压测是这么一个过程:

  1. 项目(java案例)提交时通过webhook执行jenkins构建
  2. jenkins构建完成后产生交付物到云仓库
  3. 服务器拉取交付物(jar包),部署启动环境,同时启动项目。
  4. 配置Jmeter分布式压测(多台机器同时发起请求)
  5. Jmeter开启压测。

之后,集成jenkins+grafana+prometheus完成压测监控

  • 配置jenkins构建,通过脚本执行压测命令
  • 配置grafana+prometheus完成对服务器的监控(内存使用率、cpu使用率等等)
  • 根据各项指标,调整jvm等参数完成单机调优
  • 本文主要描述Jmeter分布式压测的配置过程,后续将继续完成整个自动化测试过程。

    二、配置流程

    1.下载jmeter安装包

    网上到处都有安装包,暂且我的云仓库可提供下载地址:

    http://bucket-local-2.oss-cn-beijing.aliyuncs.com/apache-jmeter-5.2.1.tgz

    在shell上直接用wget命令获取即可

    [root@dylan test]# wget http://bucket-local-2.oss-cn-beijing.aliyuncs.com/apache-jmeter-5.2.1.tgz

    下载完成后解压包:

    [root@dylan jmeter]# sudo tar -zxvf apache-jmeter-5.2.1.tgz

    修改环境变量,在/etc/profile的export下增加一行:

    export PATH=$PATH:/mnt/jmeter/apache-jmeter-5.2.1/bin

    执行命令: source /etc/profile 使环境变量生效即可

    验证结果:

    linux下Jmeter分布式压测

    注意:后续的调度机(master)和执行机(slave)都需要安装jmeter

    2.配置调度机

    调度机作用:用来调度其他机器,完成jmeter测试

    调度机(master)的当前ip为:192.168.196.216

    执行机(slave)的当前ip为:192.168.196.17

    请根据自己的服务器进行修改

    (1).修改配置文件

    进入apache-jmeter-5.2.1/bin 目录,按以下配置修改jmeter.properties配置文件

    remote_hosts=192.168.196.17:1099

    server_port=2099

    server.rmi.ssl.disable=true

    简述:

    remote_hosts 为执行机的ip及端口,多个执行机可通过英文逗号 “,” 进行拼接

    如图:

    linux下Jmeter分布式压测

    linux下Jmeter分布式压测

    (2).生成密钥:rmi_keystore.jks

    进入 apache-jmeter-5.2.1/bin 目录,执行命令:

    [root@dylan bin]# sudo ./create-rmi-keystore.sh

    将会生成文件 rmi_keystore.jks 需要将它复制到执行机的 apache-jmeter-5.2.1/bin目录下

    如图:

    linux下Jmeter分布式压测

    此时, 调度机已配置完成。

    3.配置执行机

    执行机描述:顾名思义,它是执行压测发起的机器,它开启线程来发出请求

    执行机(slave)的当前ip为:192.168.196.17

    请根据自己的服务器进行修改

    (1).修改配置文件

    进入apache-jmeter-5.2.1/bin 目录,按以下配置修改jmeter.properties配置文件

    server.rmi.ssl.disable=true

    如图:

    linux下Jmeter分布式压测

    (2).修改配置文件 system.properties

    在apache-jmeter-5.2.1/bin目录下执行命令:sudo vim system.properties

    在system.properties的文件最后一行增加以下配置

    java.rmi.server.hostname=192.168.196.17

    如图:

    linux下Jmeter分布式压测

    操作完成后, 将调度机产生的密钥文件:rmi_keystore.jks 放置到jmeter目录下。

    (3).验证启动状态

    在/apache-jmeter-5.2.1/bin下执行命令:sudo ./jmeter-server

    若出现以下示例,则证明执行机配置成功

    linux下Jmeter分布式压测

    此刻,二者都已配置完毕,需要进行操作验证

    4. 调度测试

    通过jmeter操作界面生成测试文件test.jmx 放置在调度机的某个目录下。

    案例:

    linux下Jmeter分布式压测

    之后,开启服务端,进入执行机 jmeter的bin目录下,启动执行机:

    [root@iZ2ze8pbai447rborr4wtfZ bin]# sudo ./jmeter-server

    在调度机执行test.jmx完成分布式压测:

    [root@dylan my_threads]# jmeter -n -t test.jmx -r -l test.jtl

    命令说明:

    1. -n 告诉jmeter使用非GUI模式执行测试
    2. -t 执行的测试脚本名
    3. -r 远程执行 , 在Jmter.properties文件中指定的所有远程服务器
    4. -l 结果文件,如果不写路径,则在执行目录生成

    产生类似以下结果,则证明配置完成:

    调度机:

    linux下Jmeter分布式压测

    执行机:

    linux下Jmeter分布式压测

    linux下Jmeter的分布式压测模拟已完成。

    原文链接:
    https://blog.csdn.net/qq_37822090/article/details/105145354

    来源:牛鹭软件测试

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年2月20日
    下一篇 2022年2月20日

    相关推荐