压力山大?搭建JMeter分布式压测环境轻松应对!

这篇具有很好参考价值的文章主要介绍了压力山大?搭建JMeter分布式压测环境轻松应对!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

引言

windows环境部署

1.安装环境变量

2.配置环境变量

3.修改Jmeter配置文件

4.启动jmeter

5.启动分布式服务

Linux环境部署

1.安装JDK+Jmeter

2.环境优化

4.编写Jmeter脚本

5.启动Jmeter

6.停止Jmeter

7.打包查看测试报告


引言

您想要提高您的应用程序的性能吗?想要确保它在高负载下仍然能够正常工作吗?那么,您一定需要一个可靠的性能测试工具来帮助您完成这个任务。

JMeter是一个广泛使用的性能测试工具,但是如果您的测试需求变得更加复杂和庞大,那么单机运行可能无法满足您的需求。那么有没有一种方法可以提高测试效率呢?

当然有!搭建JMeter分布式压测环境是一个明智的选择。通过增加多台计算机节点,您可以将测试负载分散到不同的计算机上,从而有效地提高测试效率,并且节省大量时间和精力。

在本篇文章中,我们将为您详细介绍如何搭建JMeter分布式压测环境,并分享一些实用的技巧和经验,助您轻松应对压力山大的测试任务。让我们开始吧!

windows环境部署

1.安装环境变量

下载JDK,可以在oracle官网下载

2.配置环境变量

将下载下来的JDk进行安装,添加JAVA_HOME 填写JDK存放路径(根据自己路径进行填写),如C:\Program Files\Java\jdk1.8.0_202

压力山大?搭建JMeter分布式压测环境轻松应对!

添加JMETER_HOME 填写Jmeter存放路径(根据自己路径进行填写),如D:\办公\3.软件\jmeter5.1+java1.8\apache-jmeter-5.1.1

压力山大?搭建JMeter分布式压测环境轻松应对!

添加CLASSPATH,将下面内容加在最后

;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar

压力山大?搭建JMeter分布式压测环境轻松应对!

添加Path,将下面内容加在最后

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
%JMETER_HOME%\bin

压力山大?搭建JMeter分布式压测环境轻松应对!

3.修改Jmeter配置文件

进入Jmeter配置文件中D:/**/apache-jmeter-5.3/bin/jmeter.properties

server.rmi.ssl.disable=true      # 将false改成true,去掉前面#号

压力山大?搭建JMeter分布式压测环境轻松应对!

添加发压机(这一步是添加使用Jmeter分布式需要启动的发压机,IP+端口):

remote_hosts=xxx.168.xxxx.2:1099,xxxx.168.xxx.3:1099,xxxx.168.xx.4:1099

压力山大?搭建JMeter分布式压测环境轻松应对!

4.启动jmeter

压力山大?搭建JMeter分布式压测环境轻松应对!

Jmeter工具使用请看下面文章:Jmeter压测工具入门篇

5.启动分布式服务

在slave机(发压机)上启动客户端jmeter-server.bat

压力山大?搭建JMeter分布式压测环境轻松应对!

如下图看到slave已经启动。

压力山大?搭建JMeter分布式压测环境轻松应对!

slave机启动后,在master选择 运行,远程启动/远程启动所有,就可以分布式的多台slave机一起压测了。

压力山大?搭建JMeter分布式压测环境轻松应对!

Linux环境部署

1.安装JDK+Jmeter

安装jmeter之前需要先安装jdk,下载jdk(可以使用下面地址进行下载,也可以去官网下载,官网需要登录oracle)

链接: https://pan.baidu.com/s/1Gu5pwMxyxGxN3X94E5NKYg?pwd=ai6j

(内网部署只需要手动把JDK和Jmter包上传到内网解压,其余步骤不变)

解压jdk,这里安装到/usr/local/java/目录(安装路径根据个人喜好,但要和环境变量中的地址匹配)

tar -zxvf jdk-8u181-linux-x64.tar.gz

配置环境变量,修改配置文件vi /etc/profile,文本最后加上以下内容

JAVA_HOME=/usr/local/java/jdk1.8.0_181
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

使环境变量生效

source /etc/profile

验证jdk配置成功

java -version

压力山大?搭建JMeter分布式压测环境轻松应对!

使用命令直接安装Jmeter

wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz

如果是内网环境,需要手动上传Jmeter安装包,下载最新版Jmeter

解压jmeter,这里安装到/usr/local目录(安装路径根据个人喜好,但要和环境变量中的地址匹配)

tar -zxf apache-jmeter-5.4.3.tgz

建立脚本目录:/root/jmeter/scripts,#脚本上传的地址

建立报告目录:/root/jmeter/report,#报告生成存放目录

配置jmeter环境变量,vi /etc/profile,文本最后加上以下内容

export JMETER_HOME=/usr/local/apache-jmeter-5.4.3
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH

使环境变量生效

source /etc/profile

验证jmeter配置成功

jmeter --version

压力山大?搭建JMeter分布式压测环境轻松应对!

2.环境优化

1.配置jmeter的使用内存,根据实际服务器和测试需求量来修改,最大为服务器内存的一半

vi /usr/local/apache-jmeter-5.4.3/bin/jmeter

压力山大?搭建JMeter分布式压测环境轻松应对!

2.优化linux内存参数,修改limits.conf文件:

vi /etc/security/limits.conf

最后添加(不同操作系统可能不一样,下面为centos):

*               soft    nofile            102400
*               hard    nofile            102400
*               soft    nproc             65535
*               hard    nproc             65535

重新打开SSH终端,执行如下命令查看是否生效

ulimit -n

压力山大?搭建JMeter分布式压测环境轻松应对!

3.修改Linux内核参数,修改/etc/sysctl.conf文件:

vi  /etc/sysctl.conf

并添加以下内容:

net.ipv4.tcp_syncookies = 0
fs.file-max = 12553500
fs.nr_open = 12453500
kernel.shmall= 1048576
kernel.shmmax = 1887436
kernel.msgmax = 65536
kernel.sysrq = 0
kernel.pid_max= 65536
net.core.netdev_max_backlog = 2000000
net.core.rmem_default = 699040
net.core.rmem_max = 50331648
net.core.wmem_default = 131072
net.core.wmem_max = 33554432
net.core.somaxconn = 65535
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_mem = 1048576 1572864 2097152
net.ipv4.tcp_rmem = 4096 4194304 8388608
net.ipv4.tcp_wmem = 4096 4194304 8388608
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_window_scaling = 1
vm.swappiness = 0
#TCP connection recovery
net.ipv4.tcp_max_tw_buckets = 6000000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.route.max_size = 5242880
net.ipv4.ip_forward = 1
#0表示不开启检查时间错,建议设置0
net.ipv4.tcp_timestamps = 0
#开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
#TCP connection manager
net.ipv4.tcp_max_syn_backlog = 655360
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 6
#TCP keepalive
net.ipv4.ip_local_port_range = 1025 65534
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3

输入下面的命令,让内核参数生效:

sysctl -p

3.修改Jmeter配置文件

进入Jmeter配置文件中D:/**/apache-jmeter-5.3/bin/jmeter.properties

server.rmi.ssl.disable=true      # 将false改成true,去掉前面#号

压力山大?搭建JMeter分布式压测环境轻松应对!

添加负载机(这一步是添加使用Jmeter分布式需要启动的负载机,IP+端口):

remote_hosts=xxx.168.xxxx.2:1099,xxxx.168.xxx.3:1099,xxxx.168.xx.4:1099

压力山大?搭建JMeter分布式压测环境轻松应对!

4.编写Jmeter脚本

通过Windows把要压测的Jmeter脚本调试完成,保存为****.jmx文件,上传到Linux服务。

5.启动Jmeter

1)先分别启动slave(所有压测机)上的服务,命令如下(多网卡需要指定ip)

nohup jmeter-server -Djava.rmi.server.hostname=172.168.xxx.2 &  #压测机IP

2)启动master,执行以下命令启动jmeter

jmeter -r -n -t ***.jmx -l test.jtl
参数说明:
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 代表全部agent启动并参与测试

3)如果要启动指定发压机,执行以下命令

jmeter -n -t ***.jmx -l test.jtl -R xxxx.168.xx,xxxx.168.xx,xxxx.168.xx
参数说明:
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-R 指定的agent启动并参与测试

6.停止Jmeter

进入到JMeter 的 bin 目录下,输入 ./shutdown.sh 命令停止脚本

注:如果在分布式压测过程中,想要终止压测,千万不要在Linux上按 ctrl + c 强制终止程序,这样会知道主程序挂了之后,从机未接受到执行,会一直持续运行。当你再次从主机上运行脚本,从机仍然会在上一个脚本的程序中运行,这时需要去杀掉进程。

7.打包查看测试报告

将linux下的report打包成zip,然后导出到windows下查看index.html测试报告

压力山大?搭建JMeter分布式压测环境轻松应对!

压力山大?搭建JMeter分布式压测环境轻松应对!

 文章来源地址https://www.toymoban.com/news/detail-464735.html

写在最后

这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

都到这了记得三连支持一下吧。

-------------------------------------------------

完整版文档下载方式:

这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享。

压力山大?搭建JMeter分布式压测环境轻松应对! 

在评论区和我互动交流或者私❤我【软件测试学习】领取即可,拿走不谢。

 

到了这里,关于压力山大?搭建JMeter分布式压测环境轻松应对!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用 docker 实现JMeter分布式压测

    在工作中经常需要对一些关键接口做高QPS的压测,JMeter是由Java 语言开发,没创建一个线程(虚拟用户),JVM默认会为每个线程分配1M的堆栈内存空间。受限于单台试压机的配置很难实现太高的并发。所以,通过JMeter实现分布式,可以整合多台主机的硬件资源,实现同时对被测

    2024年02月05日
    浏览(33)
  • 基于docker实现JMeter分布式压测

    在工作中经常需要对一些关键接口做高QPS的压测,JMeter是由Java 语言开发,没创建一个线程(虚拟用户),JVM默认会为每个线程分配1M的堆栈内存空间。受限于单台试压机的配置很难实现太高的并发。所以,通过JMeter实现分布式,可以整合多台主机的硬件资源,实现同时对被测

    2024年02月07日
    浏览(30)
  • 基于Docker的JMeter分布式压测

    目录 前言: Docker Docker在JMeter分布式测试中的作用 Dockerfile用于JMeter基础: Dockerfile for JMeter Server / Slave: 总结 前言:         基于Docker的JMeter分布式压测是一种将JMeter测试分布在多个容器中进行的方法,可以提高测试的性能和效率。使用Docker容器化JMeter,可以轻松地在多个主

    2024年02月11日
    浏览(31)
  • Jmeter分布式压力测试

    目录 1、场景 2、原理 3、注意事项 4、slave配置 5、master配置 6、脚本执行 在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。 例如4C8G的window server机器,使用UI方式,最高压测

    2024年02月08日
    浏览(29)
  • Jmeter分布式压力测试详解

    在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。 例如4C8G的window server机器,使用UI方式,最高压测在1800并发(RT 20ms以内)左右。如果对于XML文件进行解析,更容易吃CPU,并发

    2024年02月05日
    浏览(26)
  • 分布式压测之locust和Jmeter的使用

    受限于单台机器的配置问题,我们在单台机器上达不到一个很高的压测并发数,那这个时候就需要 引入分布式压测 分布式压测原理: 一般通过局域网把不同测试计算机链接到一起,达到测试共享、分散操作、集中管理的目的。 选择一台作为调度机(MASTER),其他机器作为执

    2024年02月19日
    浏览(28)
  • 【性能测试】分布式压测之locust和Jmeter的使用

    受限于单台机器的配置问题,我们在单台机器上达不到一个很高的压测并发数,那这个时候就需要 引入分布式压测 分布式压测原理: 一般通过局域网把不同测试计算机链接到一起,达到测试共享、分散操作、集中管理的目的。 选择一台作为调度机(MASTER),其他机器作为执

    2024年02月19日
    浏览(32)
  • 如何进行JMeter分布式压测?一个案例教你详细解读!

    目录 引言 一、什么是压力测试? 二、什么是分布式测试? 三、为什么要使用分布式压力测试? 四、主流压力测试工具对比 五、Jmeter分布式压测原理 六、Jmeter分布式压测前的准备工作 七、阿里云服务器上进行分布式压测 八、系统架构学习 当前快速发展的互联网应用领域,

    2024年02月08日
    浏览(47)
  • docker+jmeter实现简单的分布式压力测试

    阶梯压力测试的场景是为了验证在系统运行期间,用户不断的登录系统并使用一段时间,通过阶梯的场景,模拟实际应用期间系统的稳定性、承载性。 二、常用的阶梯压力测试线程组 stepping Thread Group 步长插件 Concurrency Thread Group 步长并发插件 两者区别 stg不提供设置启动延迟

    2024年04月16日
    浏览(43)
  • JMeter分布式集群---部署多台机器进行性能压力测试

    有些时候,我们在进行压力测试的时候,随着模拟用户的增加,电脑的性能(CPU,内存)占用是非常大的,为了我们得到更加理想的测试结果,我们可以利用jmeter的分布式来缓解机器的负载压力,分布到多台机器同时运行。 1.Jmeter分布式执行原理: 1、Jmeter分布式测试时,选择

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包