在多机器上远程执行JMeter
安装完jmeter之后直接执行%InstallDir%\apache-jmeter-3.2\bin\JMeter.bat可以启动UI界面,可以编辑或者执行TestPlan等,默认情况下,用例是在本机执行,而且执行的线程有限,对应的,对服务器的压力也有限。如果我们想要对目标服务器或服务器组增加足够的压力,就需要足够的线程去完成,相对应的,仅仅是一台机器说能执行的线程不足以承担这样的工作量,所以,我们就需要考虑用多台机器同时运行,而且要协同工作,然后对我们的测试环境增压。这种情况,我们就需要改Jmeter的配置来完成:
通常,由于多机器同时运行Jmeter,如果我们用UI的方式去远程执行或者控制的话,当线程比较多时,由于交互比较频繁,数据传递也比较多,这样就容易导致JMeter的UI窗体卡死,甚至直接死掉,最终让我们的执行计划中断。针对这种情况,我们一般用命令行的方式去启动JMeter来执行。
在执行测试之前,我们需要做如下工作:
- 在要执行JMeter的多台机器上都装上JMeter。
- 在上面安装完JMeter的机器中选择一台作为我们的控制器,以用来执行或者停止测试。
- 在控制器上,用记事本打开目录%InstallDir%\apache-jmeter-3.2\bin\ 下的jmeter.properties 文件。然后找到“# Remote hosts and RMI configuration”,在它的下面有一行如:“remote_hosts=127.0.0.1”,把这行改为如下(对应的IP为其他几台安装JMeter的机器IP),然后保存:
remote_hosts=10.185.76.211,10.185.76.215,10.185.76.216,10.185.76.212,10.185.76.213
4. 然后把编辑好的TestPlan 文件,以及TestPlan需要用到的其他资源文件(如,CSV文件,KeyStore文件等)复制到所有JMeter机器的相同路径下,以便于JMeter执行时能够正确找到。
5. 在除控制器之外的其他JMeter的主机上启动JMeter,直接到%InstallDir%\apache-jmeter-3.2\bin\下从命令行执行".\jmeter.bat -s" 来启动JMeter server.
当然,在执行JMeter测试之前,还得确认测试环境是否正常工作。
等以上准备工作准备好了之后,就可以在控制器上用命令行运行JMeter执行测试了。用管理员权限打开命令行窗口,然后转到文件夹%InstallDir%\apache-jmeter-3.2\bin,命令如下:
jmeter -n -r -t %JMeterTestPlanFile% -e -l %JmeterLogFileName% -o %ReportOutPutFolder%
sample:
jmeter -n -r -t C:\TestTestPlan\ScaleTest.jmx -e -l C:\TestData\ScaleRunResultLog.jtl -o C:\TestData\
如果执行的时候没有生成report,可以用下面的命令重新生成report。
jmeter -g %JMeterLogFile% -o %ReportFileWillOutput%
sample:
jmeter -g C:\TestData\ScaleRunResultLog.jtl -o C:\TestData\
其他:
Go to your JMeter directory and open your system.properties file.
There, uncomment the following lines, and change the file to match your values:
javax.net.ssl.keyStore=<your_JKS_filename.jks>
javax.net.ssl.keyStorePassword=yourJKSpassword
import cert to keystore:
C:\Program Files\Java\jre1.8.0_91\bin>keytool -importkeystore -srckeystore C:\certtest.pfx -srcstoretype PKCS12 -srcstorepass password -keystore C:\Configs\ApiTest.keystore -storepass password -srcalias 1 -destalias TestStoreName
(完)
在多机器上远程执行JMeter的更多相关文章
- ssh 远程执行命令 nohup 无效问题
昨夜1:00多准备睡觉了,突然一哥们咨询了我一个问题. 他A机器上远程执行B机器(ssh user@ip "command")上的脚本,B上的服务并没有起来. 看了下截图,脚本确实 ...
- 开发机器上利用vs2013调试远程IIS上的c#程序
当远程IIS上的C#程序出现问题,怎么排错,一般我们通过看日志排查错误的方法,这种方法在程序异常日志都打印出来的情况下是可以解决的,但如果程序日志不详细,或者从日志看不出有用的内容的时候怎么排错? 本 ...
- 两台linux服务器之间免密scp,在A机器上向B远程拷贝文件
两台linux服务器之间免密scp,在A机器上向B远程拷贝文件 操作步骤:1.在A机器上,执行ssh-keygen -t rsa,一路按Enter,不需要输入任何内容.(如有提示是否覆盖,可输入y后按 ...
- SSH 无密码远程执行脚本
ssh无密码登录及远程执行脚本要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS7为例. 测试环境:机器A(10.0.224.80):机器B(192.16 ...
- 解决SSH远程执行命令找不到环境变量的问题
通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同, ...
- Linux远程执行shell命令
Linux远程执行shell命令 在Linux系统中,我们经常想在A机器上,执行B机器上的SHELL命令. 下面这种方案,是一种流行可靠的方案. 1.SSH无密码登录 # 本地服务器执行(A机器) ...
- Jenkins 为Jenkins添加Windows Slave远程执行python项目脚本
为Jenkins添加Windows Slave远程执行python项目脚本 by:授客 QQ:1033553122 测试环境 JAVA JDK 1.7.0_13 (jdk-7u13-windows ...
- sheel远程执行
https://www.cnblogs.com/softidea/p/6855045.html shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行 ...
- SSH远程执行命令环境变量问题
SSH命令格式 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address: ...
随机推荐
- zabbix自定义监控项、添加图形、设置触发器、远程执行命令
监控项是在zabbix中手机数据的基础,没有监控项就没有数据,系统自带模板带有大量默认item,自定义item可以定义在模板中,在应用模板即可使用对应item:也可直接在host中定义 目标:自定义监 ...
- 跨平台技术实践案例: 用 reactxp 重写墨刀的移动端
Authors: Gao Cong, Perry Poon Illustrators: Shena Bian April 20, 2019 重新编写,又一次,我们又一次重新编写了移动端应用和移动端 ...
- 爬取豆瓣电影排行top250
功能描述V1.0: 爬取豆瓣电影排行top250 功能分析: 使用的库 1.time 2.json 3.requests 4.BuautifulSoup 5.RequestException 上机实验 ...
- 2000w数据,redis中只存放20w的数据,如何保证redis中的数据都是热点数据
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略. redis 提供 6种数据淘汰策略:voltile-lru:从已设置过期时间的数据集(server.db[i].expires) ...
- vue+element-ui实现表格checkbox单选
公司平台利用vue+elementui搭建前端页面,因为本人第一次使用vue也遇到了不少坑,因为我要实现的效果如下图所示 实现这种单选框,只能选择一个,但element-ui展示的是多选框,check ...
- .net 操作web.config文件
XmlDocument doc = new XmlDocument(); string wc = HttpContext.Request.PhysicalApplicationPath + @&quo ...
- Yarn 组件的指挥部 – 调度器Scheduler
linux基础 为hadoop集群的搭建扫清了障碍,也为内存的管理,文件系统的管理扫清了障碍 接着到Hadoop的阶段,首先做集群的安装,深入到使用这两个核心的组件,分布式文件系统HDFS,解决大量数 ...
- #WEB安全基础 : HTTP协议 | 0x16 HTTPS:证书,证书,全是证书
现在想做点什么事都需要证书,要不就会让我们回忆起一个典故:滥竽充数 HTTPS使用了公开密钥加密,如何保证公开密钥就是真正的公开密钥呢?攻击者可能会替换公开密钥,这时候就需要验证,所以它采用了数字证书 ...
- C#中的反射 Reflection
起初是因为这个4.0才新增的新的引用类型,我当时很惊讶为什么string和int他都能装,然后我就发在了群里,以为大佬告诉我他的内部实现是通过反射来实现的,于是我就去看反射了,看了网上的好多篇文章大篇 ...
- pydemo_testMaopuSpider
import json from multiprocessing import Pool import requests from requests.exceptions import Request ...