jmeter分布式压测

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


前提
调度机和执行机都要安装配置JDK和jmeter的运行环境

调度机和执行机上JDK和Jmeter的版本要保持一致
防火墙要关闭

整体思路
mac电脑当调度机,多个ubuntu虚拟机当执行机

调度机:配置执行机的ip等信息,后面会详细介绍,存放jmeter.jmx脚本,脚本中引用参数化文件的路径指向执行机
执行机:每个执行机都要配置自己的IP和端口,jmx需要的参数化文件要放到执行机上,所有执行机上的文件夹、目录、文件、路径等要保持一致
当在调度机上选择某个执行机执行脚本时,会把脚本文件发送到执行机上,脚本中需要的参数化文件也会按照路径引用执行机上的,执行完成后结果会返回到调度机上

调度机上连接虚拟机,将需要的安装包和参数化文件传给执行机

  1. ssh连接虚拟机:ssh username@10.x.x.x(虚拟机的用户名和IP)

  2. 输入密码回车进入根目录下,用户自己的文件一般放到home文件夹下

  3. 进入home目录下,创建项目及相关文件夹
    Mkdir autotest 存放项目信息
    Cd autotest
    Mkdir software 存放软件
    Mkdir script 存放jmeter脚本
    Mkdir testdata 存放参数化文件

  4. 在本地打开终端,向虚拟机传送文件
    Scp 本地需要传给执行机的文件路径 执行机上接收文件的路径
    scp /Users/xxx/downloads/autotest/script/order.jmx trl@10.x.x.253:/home/trl/autotest/script
    (jmx脚本在分布式压测时不需要放到执行机上,我是为了验证执行机搭建好了jmeter运行环境)
    向虚拟机发送jmeter压缩包及参数化文件(我这里需要上传邮箱和设备id)
    scp /Users/xxx/downloads/apache-jmeter-5.6.2.tgz trl@10.xx.xx.251:/home/trl/autotest/software
    Scp /Users/xxx/Downloads/autotest/testData/emailList.csv trl@10.xx.xx.252:/home/trl/autotest/testdata
    Scp /Users/xxx/Downloads/autotest/testData/device_key.csv trl@10.xx.xx.252:/home/trl/autotest/testdata

  5. jdk17下载安装
    wget https://download.oracle.com/java/17/archive/jdk-17.0.10_linux-x64_bin.tar.gz
    解压:tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz
    sudo mv jdk-17.0.10 /home/trl/autotest/software

  6. 配置环境变量:sudo vi /etc/profile

export JAVA_HOME="/home/trl/autotest/software/jdk-17.0.10"
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=.:$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH
  1. 配置jmeter环境变量
export JMETER_HOME=" /home/trl/autotest/software/apache-jmeter-5.6.2"
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJmeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH 
export PATH=$JMETER_HOME/bin:$PATH

按Esc退出编辑模式,输入:wq保存文件
配置生效:source /etc/profile
检查配置是否生效: java -version
出现如下信息表示环境配置完成

java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)
  1. jmeter安装
    解压jmeter:tar -xvf apache-jmeter-5.6.2.tgz
    进入jmeter的bin目录下:cd /home/trl/autotest/software/apache-jmeter-5.6.2/bin
    验证jmeter运行环境已配置完成,可以执行脚本
    GUI模式运行jmeter:./jmeteri
    非GUI模式运行jmeter:./jmeter -n -t /home/trl/autotest/script/order.jmx /home/trl/autotest/script/result.jtl
    非GUI模式运行jmeter并将结果打印到终端:./jmeter -n -t /home/trl/autotest/script/order.jmx -l /dev/stdout

  2. mac电脑配置环境变量的命令
    vim ~/.bash_profile

「调度机上的配置」

master机器(mac)上进入jmeter/bin目录下

  1. 编辑配置文件:vim jmeter.properties
    Include Controller附近找到:server.rmi.ssl.disable=true,改成true,目的是禁用ssl传输
    jmeter分布式压测,jmeter,分布式,jenkins,自动化

  2. 找到remote_hosts,在后面添加执行机的IP和端口,多个执行机用逗号隔开,端口可以自定义,只要确认执行机A的IP和端口不管是在调度机还是执行机上一致即可
    下图是调度机既当调度机也当执行机的配置,如果调度机只负责调度不负责执行,则后面不需要写调度机的ip
    jmeter分布式压测,jmeter,分布式,jenkins,自动化


「执行机上的配置」
  1. 进入jmeter/bin目录下
    vim jmeter-server,找到如下配置,后面改成此执行机的ip
    jmeter分布式压测,jmeter,分布式,jenkins,自动化

  2. 修改配置:vim jmeter.properties
    找到remote_hosts,改成此虚拟机IP+端口(jmeter默认端口是1099,可以默认也可以自定义)server_port值改成1099
    这个配置文件只能在当前可视区域内搜索,不能全局,可以查看右下角的进度,大概18%的位置
    jmeter分布式压测,jmeter,分布式,jenkins,自动化
    jmeter分布式压测,jmeter,分布式,jenkins,自动化

  3. 找到server.rmi.ssl.disable属性,去掉注释,值改为true(23%的位置)
    jmeter分布式压测,jmeter,分布式,jenkins,自动化

  4. 进到jmeter/bin目录下输入./jmeter-server再次启动,出现“ UnicastServerRef2 [liveRef: 。。。。。。”表示启动成功
    jmeter分布式压测,jmeter,分布式,jenkins,自动化

  5. 全部执行机上进入到jmeter/bin目录下,./jmeter-server启动服务等待被调度
    在调度机上选择run-remote start,选择刚才配置好的虚拟机就会执行jmeter,
    查看结果树可以看到调用了执行机进行压测
    jmeter分布式压测,jmeter,分布式,jenkins,自动化
    jmeter分布式压测,jmeter,分布式,jenkins,自动化

遇到的问题:

  1. 虚拟机上通过./jmeter-server命令启动jmeter服务报错,是因为
    jmeter分布式压测,jmeter,分布式,jenkins,自动化
    jmeter分布式压测,jmeter,分布式,jenkins,自动化

  2. 调度机通过jmeter启动服务时,报错
    line 128: [: : integer expression expected
    line 199: /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/bin/java: No such file or directory
    vim ~/.bash_profile把java环境变量的PATH后面的双引号去掉,再source ~/.bash_profile使配置生效就可以了
    下次还报上面的错误,就再把双引号加上
    jmeter分布式压测,jmeter,分布式,jenkins,自动化文章来源地址https://www.toymoban.com/news/detail-855371.html

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

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

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

相关文章

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

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

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

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

    2024年02月11日
    浏览(34)
  • 搭建Jmeter分布式压测与监控,轻松实践

    对于运维工程师来说,需要对自己维护的服务器性能瓶颈了如指掌,比如我当前的架构每秒并发是多少,我服务器最大能接受的并发是多少,是什么导致我的性能有问题;如果当前架构快达到性能瓶颈了,是横向扩容性能提升大,还是纵向扩容性能提升大。 如果需要了解这些

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

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

    2024年02月19日
    浏览(30)
  • 压力山大?搭建JMeter分布式压测环境轻松应对!

    目录 引言 windows环境部署 1.安装环境变量 2.配置环境变量 3.修改Jmeter配置文件 4.启动jmeter 5.启动分布式服务 Linux环境部署 1.安装JDK+Jmeter 2.环境优化 4.编写Jmeter脚本 5.启动Jmeter 6.停止Jmeter 7.打包查看测试报告 您想要提高您的应用程序的性能吗?想要确保它在高负载下仍然能够

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

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

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

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

    2024年02月08日
    浏览(50)
  • 一文2000字从0到1手把手教你jmeter分布式压测

    一台压力机的 Jmeter 支持的线程数受限于 Jmeter 其本身的机制和硬件配置(内存、CPU等)是有限的 由于 Jmeter 是 Java 应用, 对 CPU 和内存的消耗较大 ,在需要模拟大量并发用户数时,单机很 容易出现 JAVA 内存溢出的错误 ,导致测试脚本本身就有瓶颈 Java 应用的 jvm 堆内存 he

    2024年02月05日
    浏览(37)
  • 有手就会做!保姆级Jmeter分布式压测操作流程(图文并茂)

    保证本机和执行机的JDK和Jmeter版本一致 配置Jmeter环境变量 配置Jmeter配置文件 上传每个执行机服务jmeter chmod -R 755 apache-jmeter-5.1.1/ 执行机配置写自己的ip 控制机配置所有执行机ip,把server.rmi.ssl.disable改成true 将本机也作为压力机 启动jmeter-server.bat 执行机执行jmeter-server 打开控制

    2024年03月18日
    浏览(38)
  • 超全整理,Jmeter性能测试-脚本error报错排查/分布式压测(详全)

    性能脚本error报错问题排查 1、脚本运行过程中报错 1)在windows系统jmeter中,给测试脚本添加查看结果树,添加保存错误日志信息 第一步,给文件取名error.xml 第二步,仅错误日志 第三步,点击配置,全部勾选 2)把linux系统中保存的error日志文件,导入到windows系统jmeter查看结

    2024年02月07日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包