jmeter分布式压测

embedded/2024/10/18 7:53:53/

前提
调度机和执行机都要安装配置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传输
    在这里插入图片描述

  2. 找到remote_hosts,在后面添加执行机的IP和端口,多个执行机用逗号隔开,端口可以自定义,只要确认执行机A的IP和端口不管是在调度机还是执行机上一致即可
    下图是调度机既当调度机也当执行机的配置,如果调度机只负责调度不负责执行,则后面不需要写调度机的ip
    在这里插入图片描述


「执行机上的配置」
  1. 进入jmeter/bin目录下
    vim jmeter-server,找到如下配置,后面改成此执行机的ip
    在这里插入图片描述

  2. 修改配置:vim jmeter.properties
    找到remote_hosts,改成此虚拟机IP+端口(jmeter默认端口是1099,可以默认也可以自定义)server_port值改成1099
    这个配置文件只能在当前可视区域内搜索,不能全局,可以查看右下角的进度,大概18%的位置
    在这里插入图片描述
    找到:#server.rmi.port=1234。加一行server.rmi.port=1099(端口号要与上面保持一致,去掉注释)

  3. 找到server.rmi.ssl.disable属性,去掉注释,值改为true(23%的位置)
    在这里插入图片描述

  4. 进到jmeter/bin目录下输入./jmeter-server再次启动,出现“ UnicastServerRef2 [liveRef: 。。。。。。”表示启动成功
    在这里插入图片描述

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

遇到的问题:

  1. 虚拟机上通过./jmeter-server命令启动jmeter服务报错,是因为
    在这里插入图片描述
    在这里插入图片描述

  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使配置生效就可以了
    下次还报上面的错误,就再把双引号加上
    在这里插入图片描述


http://www.ppmy.cn/embedded/6487.html

相关文章

Python 数据结构和算法实用指南(一)

原文:zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 数据结构和算法是信息技术和计算机科学工程学习中最重要的核心学科之一。本书旨在提供数据结构和算法的深入知识,以及编程…

原始部落版本潮玩宇宙小程序定制大逃杀游戏APP开发H5游戏

原始部落版本潮玩宇宙小程序定制大逃杀游戏APP开发H5游戏 潮玩宇宙小程序定制大逃杀游戏APP开发H5游戏 潮玩宇宙大逃杀小游戏模块成品源码,可嵌入任何平台系统,增加用户粘性,消除泡沫,短视频直播引流。 玩家选择一间房间躲避杀手…

ADSP-21479的开发详解五(AD1939 C Block-Based Talkthru 48 or 96 kHz)音频直通

硬件准备 ADSP-21479EVB开发板: 产品链接:https://item.taobao.com/item.htm?id555500952801&spma1z10.5-c.w4002-5192690539.11.151441a3Z16RLU AD-HP530ICE仿真器: 产品链接:https://item.taobao.com/item.htm?id38007…

ollama 开源大语言模型平台

Ollama是一个开源的大语言模型平台,它允许用户在本地环境中运行、创建和共享大型语言模型。Ollama支持多种功能和特性,包括但不限于: 本地部署:Ollama提供了一个类似于Docker的CLI界面,使得用户可以快速地在本地进行大语言模型的推理部署1。这意味着用户可以在自己的计算机…

Taro-vue微信小程序用户隐私保护

Taro-vue微信小程序用户隐私保护 一、在 微信公众平台的【设置】- 【服务内容与声明】 ,设置用户隐私保护指引,添加项目需要的接口权限。 【用户隐私保护指引】提交之后,官方会进行审核。审核通过之后,对应的接口权限才会生效。 …

基于Spring Cloud Alibaba+Skywalking的分布式链路追踪设计

胡弦,视频号2023年度优秀创作者,互联网大厂P8技术专家,Spring Cloud Alibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者,资深架构师,技术负责人,极客时间训练营讲师,四…

Solidworks 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包,选择“解压到Solidworks.2024”。 打开解压后的文件夹下的“SolidSQUAD”,双击“sw2024_network_serials_licensing”。 点击“是”。 点击“确定”。 复制“SolidWorks_Flexnet_Server”文件夹。 将其粘贴至C盘。 打开复制后的文件夹…

python在selenium网页模拟运行过程中需要打开文件夹上传文件的情况的解决方法

在selenium运行过程中,可能会遇到网页需要上传文件图片等情况,有时可以直接用selenium中send_keys直接上传,但是有时不行,这时我们需要用到另一个包,pywinauto 具体的代码如下, import pywinauto # pywina…