在linux下实现jmeter的分布式测试
- 格式:doc
- 大小:1.22 MB
- 文档页数:20
学习笔记-jmeter简单性能测试及在Linux下运⾏jmeter是⼀个性能测试⼯具,这⾥简单介绍⼀点jmeter性能测试的内容。
性能测试,是衡量系统的各项性能指标的测试,最常⽤的两个指标是TPS和响应时间。
TPS:指的是服务端每秒钟处理的请求数,越⼤越好。
响应时间:顾名思义,就是服务器响应的时间,越短越好。
⽤jmeter的【聚合报告】可以查看这两个指标。
⼀、最简单的压测1、线程组的设置在线程组可以设置并发数,启动时间,循环次数等。
线程数:即并发数,可以理解为虚拟⽤户的数量;Ramp-Up Period(in seconds):设置的线程数需要多久全部启动,通过这个参数可以设置每个线程的启动间隔。
如果设置为0,则所有线程同时启动。
假设线程数是100,Ramp-Up Period(in seconds)是10,则每隔0.1秒启动⼀个线程。
即每秒启动10个线程。
循环次数:每个线程发送请求的次数。
如果勾选了永远,那么它将永远发送下去,直到停⽌脚本。
需要根据实际情况设置这些参数。
线程数设置太少,达不到性能测试的效果;设置太⼤可能会对电脑造成太⼤压⼒。
另外,设置合理的循环次数也很重要,除了给定的设置循环次数和永远,还可以通过勾选调度器,设置开始和结束时间来控制。
调度器可以设置启动时间,结束时间,持续时间,启动延迟。
⼀般压测的时间是10-15分钟。
监听器添加【聚合报告】Average是平均响应时间,单位默认是毫秒;Received KB/sec,指的是TPS实际测试中,会对TPS,响应时间,并发数有具体指标,按照需求配置,查看运⾏结果,对⽐需求即可。
⼆、添加压⼒机假如⼀台电脑能够⽀持的并发数是100个,⽽要求测试500个并发数,此时就需要添加压⼒机。
⾸先要确保主控机和负载机处于同⼀局域⽹中,步骤如下:(1)负载机上,在jmeter的bin⽬录下启动jmeter-server(windows: jmeter-server.bat)(mac、linux: jmeter-server.sh)注:负载机不需要启动jmeter,只需要启动jmeter-server即可。
【06】jmeter-⾼级篇-多节点JMeter分布式压测(⼀)⼀、什么是分布式压测 普通压测:单台机可以对⽬标机器产⽣的压⼒⽐较⼩,受限因素包括CPU,⽹络,IO等 分布式压测:利⽤多台机器向⽬标机器产⽣压⼒,模拟⼏万⽤户并发访问⼆、Linux服务器下安装启动JDK8并配置环境变量 3.配置环境变量 cd 到bin⽬录下 找到jdk解压后profile⽂件更改环境变量:vim /etc/profile 添加如下内容: export JAVA_HOME=jdk的路径 export PATH=$PATH:$JAVA_HOME/lib/ export CLASSPATH=.:$JAVAHOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH 4.启配置⽂件:source /etc/profile 输⼊命令:java -version 验证是否安装成功三、Linux服务器下安装jmeter 新建jmeter⽂件:mkdir jmeter 解压:tar -zxvf apache-jmeter-4.0.tgz四、Jmeter⾮GUI界⾯ 参数讲解 -n ⾮GUI模式 -t 指定要运⾏的 JMeter 测试脚本⽂件 -l 记录结果的⽂件每次运⾏之前,(要确保之前没有运⾏过,即xxx.jtl不存在,不然报错) -r Jmter.properties⽂件中指定的所有远程服务器 -e 在脚本运⾏结束后⽣成html报告 -o ⽤于存放html报告的⽬录(⽬录要为空,不然报错) jmeter -n -t linux_users_api.jmx -l result.jtl -e -o /usr/local/softwate/jmeter/temp/ResultReport jmeter -n -t /Users/jack/Desktop/linux_users_api.jmx -l result.jtl -e -o /Users/jack/Desktop/person/jmeter/temp五、查看性能测试报告.jtl格式 线程组->summary report->浏览⽂件 jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl六、把Jmtere压测结果转换为Html jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl -e -o/usr/local/software/jmeter/temp/result。
jmeter分布式接口测试一、Jmeter分布式执行原理:1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的.3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总.二、执行机(slave)配置:1、slave机上需要安装Jmeter,与调度机所安装的Jmeter版本一致最好.2、添加环境变量:JMETER_HOME=D:\B_TOOLS\apache-jmeter—2.13,此处为你Jmeter的路径3、启动bin目录下的:jmeter-server。
bat,启动成功如下图:4、上图上标红的IP和端口会在master里配置时用到。
IP就是slave机器IP,端口默认是1099,端口也可以自定义,这里我自定义为1000,不修改端口,默认调度机配置时,写1099,这个后面会讲.5、多台slave的话,重复1~4步骤就好。
三、调度机(master)配置:1、找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口:remote_hosts=10.99。
25.166, 10。
99.25。
207多台slave之前用”,”隔开2、打开Jmeter,选择运行,有远程启动、远程全部启动两个选项:3、选择远程启动全部a) master结果,全部启动,我配置了2台slave,所以有两次执行结果b) slave控制台信息:四、自定义端口:上面其实已经实现了Jmeter的分布式测试,这部分主要介绍下如何自定义slave端口:1、slave:在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:server_port=1888server.rmi。
jmeter分布式压测命令摘要:1.介绍JMeter 分布式压测2.JMeter 分布式压测的命令使用3.命令参数详解4.实际应用案例5.总结正文:JMeter 是一款非常强大的压力测试工具,可以用于测试各种协议的服务器,如HTTP、FTP、SOAP 等。
在进行分布式压力测试时,我们需要使用一些特定的命令来完成。
本文将详细介绍JMeter 分布式压测的命令及其使用方法。
1.介绍JMeter 分布式压测JMeter 分布式压力测试是通过多台计算机同时向服务器发起请求,以模拟大量用户访问的情况。
这有助于评估系统在高并发环境下的性能和稳定性。
为了实现分布式压测,我们需要在所有参与压测的计算机上安装JMeter,并配置相关的参数。
2.JMeter 分布式压测的命令使用以下是JMeter 分布式压测中常用的几个命令:- `jmeter.bat`(Windows 系统)或`jmeter.sh`(Linux/Unix 系统):这是启动JMeter 的命令。
运行这个命令后,JMeter 会启动并显示主界面。
- `jmeter -n -t [测试计划文件] -l [结果文件] -e -o [报告文件夹]`:这是运行压力测试的命令。
其中,`[测试计划文件]`是包含测试计划的XML 文件,`[结果文件]`是用于存储结果的CSV 文件,`[报告文件夹]`是用于存储报告的文件夹。
使用这个命令后,JMeter 会根据指定的参数运行压力测试,并将结果和报告保存在指定的位置。
- `jmeter -n -t [测试计划文件] -l [结果文件] -e -o [报告文件夹] -Djava.rmi.server.hostname=<IP 地址或域名>`:这个命令与上一个命令的区别在于,它指定了RMI 服务器的主机名。
在分布式压测中,我们需要为每台参与压测的计算机指定一个唯一的主机名,以便JMeter 能够正确地将请求分配给不同的计算机。
在linux下实现jmeter的分布式测试目录一.录制jmeter脚本 (2)1.1 下载运行jmeter (2)1.2 添加线程组 (2)1.3 集合点 (3)1.4. 添加请求 (4)1.5. 配置http请求 (5)1.6. 参数化变量 (6)1.7. 监控器—聚合报告 (7)1.8. 监控器—PerfMon Metrics Collector (9)1.9. 监控器—JMXMon Samples Collector (10)1.10. 监控器—察看结果树 (11)1.11. 断言 (12)1.12. 监听器—断言结果 (15)二. 如何监控服务器端的CPU与内存? (16)三. 在linux下实现jmeter的分布式 (18)要实现在linux下jmeter分布式测试,首先必须学会在window系统下录制jmeter脚本,所以在正式介绍该问题之前,先介绍下window系统下jmeter 脚本的录制和jmeter的一些小的插件.一.录制jmeter脚本1.1下载运行jmeter下载jmeter,如下的版本:运行bin下的jmeter.bat1.2 添加线程组线程数:n,代表的是本次测试模拟的是n个用户Ramp-Up Period(in seconds):m,代表的是n个用户的启动延时为m秒,通俗点讲,就是如果线程数为10,该值为5,那么每秒钟将要启动2个用户循环次数:s,代表的是该线程组运行的次数,选择“永远”会一直执行下去调度器:个人理解主要是用于当测试系统稳定性时,时间上的一个把控1.3 集合点在jmeter下的集合点,是通过定时器的Synchronizing Timer插件完成的表示的是集合到30个用户后,同时对系统进行某一个事物,集合点主要是用于并发的测试,尤其是要测试接口并发的时候,需要配置该插件1.4. 添加请求在这里以接口并发测试为例子,接口名字:获取题库初始版本号,详细内容,如下:根据接口的性质,这里添加http请求,如下:注:该http请求,必须是在线程组下添加1.5. 配置http请求名称:可以修改为代表该请求功能性的名称服务器名称或IP:可以填写域名()或ip,取决于程序部署到了那台服务器上协议:http,方法:post,取决于研发设计的接口方法,编码格式:utf-8,决定了输出的结果是否为中文路径:填写接口文档中的该接口路径就行,最后一定不要忘了加”?”参数:license,是入参,如果入参license是一个固定的值,值的部分可以直接填写值,如果license是一个变化的量,需要对参数进行参数化,值填写${license},参数化如下.1.6. 参数化变量参数化配置Filename:文件路径,参数值存放的文件,参数在CSV中是以列区分的Variable Name:变量名称Allow quoted data:是否支持引用Recycle on EOF:当读取变量到结尾,是否支持变量值得循环Stop thread on EOF:当读取变量到结尾时,是否停止该线程Sharing mode:变量模式,该变量的值,是适用于当前线程还是所有线程1.7. 监控器—聚合报告通过上面的配置,接口请求的功能就配置完成了,接下来的配置主要就是对结果的监控与分析http请求---监控器—聚合报告:代表的该监控器监控的是该请求的结果聚合报告,能够简明扼要的显示测试结果Samples:样本数,模拟的用户数目Average:所有用户的平均响应时间Median:根据用户的响应时间,按照从小到大的顺序排序,前50%的用户的平均响应时间90%line: 根据用户的响应时间,按照从小到大的顺序排序,前90%的用户的平均响应时间95%line: 根据用户的响应时间,按照从小到大的顺序排序,前95%的用户的平均响应时间99%line: 根据用户的响应时间,按照从小到大的顺序排序,前99%的用户的平均响应时间Min:最小的用户响应时间Max:最大的用户响应时间Error:请求的错误率Throughput:吞吐,每秒钟处理的请求个数KB/sec:每秒钟获取的数据大小1.8. 监控器—PerfMon Metrics CollectorPerfMon Metrics Collector主要是用于监控服务器的CPU与内存.配置监控器,如下:IP:要监控的服务器的ip端口:4444如果要完成该监控,关键的在服务器端装插件,具体过程下面的2详讲1.9. 监控器—JMXMon Samples CollectorJMXMon Samples Collector:主要是用于监控java开发中的JVM配置监控器,如下:关键在服务器端要开启,JVM的7199端口,用于监控以堆内存(max)为例,URL:service:jmx:rmi:///jndi/rmi://192.168.200.7:7199/jmxrmiObject Name:ng:type=MemoryAttribute:HeapMemoryUsageKey:max参数的名称,属性,值可以参考jconsole中的参数信息1.10. 监控器—察看结果树的结果,查看失败的原因,如下:1.11. 断言响应断言:针对的响应内容进行检测,看是否符合期望结果响应数据中必须有true,所以配置如下:响应的内容中,数据部分不能够为空,所以配置如下:大小断言:响应的内容的大小进行检测响应的内容不能够为空,配置如下,字节>01.12. 监听器—断言结果根据10添加了合适的监听器,针对监听器的结果,就要通过监听器,断言结果查看了。
jmeter使⽤-【分布式并发接⼝测试步骤】当测试需要压⼒过⾼时,⼀个负载机的资源往往⽆法⽀撑,此时就需要增加多台机器同时⽣成负载,这样的测试就是分布式测试。
⼀、Jmeter分布式执⾏原理: 1、Jmeter分布式测试时,选择其中⼀台作为调度机(master),其它机器做为执⾏机(slave)。
2、执⾏时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执⾏,slave执⾏时不需要启动GUI,我理解它应该是通过命令⾏模式执⾏的。
3、执⾏完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
⼆、slave机器配置(linux系统为例):1. 将jmeter装⼊Linux服务器中,这个时候可以注意⼀下,调度机和执⾏机最好安装相同的jmeter和JDK版本,避免因为版本不同⽽发⽣错误2. 安装完成后进⼊jmeter⽬录下的bin⽬录中,打开jmeter.properties⽂件,修改server.rmi.ssl.disable=false,改为true,并去掉注释3. 启动⽬录下的jmeter.bat⽂件如果遇到上⾯这种情况,就使⽤以下命令启动服务 ./jmeter-server -Djava.rmi.server.hostname=主机ip ,主机IP为slave机器的ip;启动成功展⽰如下:如果需要多台slave机器,则重复上述步骤即可。
三、master机器配置(windows系统为例):1. 打开jmeter路径下的jmeter.properties⽂件,修改server.rmi.ssl.disable=false,改为true,并去掉注释将slave机器的IP也填⼊这个⽂件,ip和端⼝可以在服务启动的输出信息中取到,如果添加多个slave机器,则⽤“,”隔开就可以2. 这个时候在jmeter内就可以看到已经添加成功了,点击运⾏10106端⼝的slave服务器,就可以在查看结果树中看到已经执⾏成功了此时slave端也可以看到有运⾏信息输出。
jmeter性能测试部署(Linux)1 Linux下jmeter性能测试1.1 环境配置1.1.1 环境准备整个测试过程中,测试环境为Windows系统和linux系统两部分,Windows环境下调试和配置需要运⾏的jmeter脚本,在linux系统中开始性能测试过程。
Linux安装CentOS 7系统,并在系统中安装好java环境,此次测试中,配置的java为java 1.8.0_211。
1.1.2 测试软件准备测试中准备apache-jmeter-5.0版本jmeter进⾏测试。
为保证脚本设置和脚本运⾏时没有差异,Windows和Linux环境使⽤同⼀个版本的jmeter,也避免测试过程中因测试⼯具版本不兼容,出现异常。
1.2 jmeter集群配置1.2.1 单台jmeter设置将jmeter包拷贝⾄linux指定位置并解压(tar –zxvf 压缩包名称),开始配置jmeter。
1.配置环境变量打开/etc/profile,进⼊⽂件最后添加jmeter环境配置,如下图红⾊横线所⽰,路径为Jmeter包存放位置。
(可进⼊jmeter的bin⽬录下,输⼊pwd命令查看对应位置)配置完成后,保存此配置⽂件,执⾏命令source /etc/profile让配置⽣效。
此时在输⼊命令:jmeter –v可查看对应的jmeter版本信息。
Jmeter要配环境变量,这样不⽤⼿动起server,如果不配置环境变量,每次启动时都需要进⼊到对应的bin⽬录下进⾏操作。
2. Jmeter内存调优压测过程中jmeter报内存溢出(报错:ng.OutOfMemoryError:gc overhead limit exceeded),或在测试过程中因jmeter⾃⾝内存限制,影响测试结果,在测试前可调整jmeter内存。
查看bin⽬录下jmeter⽂件(此次使⽤的版本,内存设置在jmeter⽂件中,也有在jmeter.sh/jmeter.bat⽂件中),修改HEAP=-Xms512m -Xmx1024m对应数值。
jmeter 分布式用法
JMeter分布式测试的用法如下:
1. 配置代理服务器:选择一台机器作为代理服务器,修改它的jmeter.properties文件,将server_port端口禁用,同时禁用server.rmi.ssl。
如果有多个代理服务器,需要对每个代理服务器进行相同的配置。
2. 配置控制机:在控制机上也需要修改jmeter.properties文件,设置remote_hosts并禁用server.rmi.ssl。
在控制机上执行分布式命令,格式为:jmeter -n -t 测试计划路径-R 代理服务器IP1,IP2 -l 测试结果文件路径。
其中,测试计划路径和测试结果文件路
径需要替换为实际的路径和文件名。
3. 启动代理服务器:在代理服务器上双击运行bin目录下的jmeter-server.bat启动代
理服务器。
启动后,JMeter代理服务器只有命令窗口,没有图形界面。
4. 执行测试:在控制机上执行分布式命令启动测试。
测试完成后,可以在控制机上查
看测试结果文件。
Linux下使用Jmeter进行性能测试一、Linux下安装Jmeter1. Linux下首先安装Jdk;2. 下载apache-jmeter-2.13.tgz,复制到Linux系统中的/opt目录下;3. 解压apache-jmeter-2.13.tgz:tar -zxvf apache-jmeter-2.13.tgz4. 配置Jmeter的环境变量: vi /etc/profile;5. 添加下述两行:export JMETER="/usr/local/jmeter/apache-jmeter-2.9"export CLASSPATH="$JMETER/lib/ext/ApacheJMeter_core.j ar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:$CLASSPATH"6. 保存并使用配置变量生效:source /etc/profile7. 校验安装:./jmeter.sh -h8. 至此Jmeter在Linux环境下安装成功!二、Linux下使用单个Jmeter客户端1. 先在windows系统中,(建议使用相同版本jdk、相同版本jmeter,以防出现莫名其妙的问题)使用jmeter创建测试计划2. 保存为Http_Baidu.jmx;3. 在/opt/apache-jmeter-2.13目录下创建plans文件夹用于存放测试计划:mkdir /opt/apache-jmeter-2.13/plans4. 复制Http_Baidu.jmx到/opt/apache-jmeter-2.13/plans目录下;5. 如需要修改测试计划,可在Linux上以文本形式打开,编辑诸如线程数,迭代次数等等参数;6. 在JMeter的bin目录下运行命令开始测试:./jmeter -n -t ../plans/Http_Baidu.jmx -l Http_Baidu_Rst.jtl7. 出现end of run表示测试计划已经运行完毕:8. 拷贝Http_Baidu_Rst.jtl到windows系统下;9. 运行JMeter的bin目录下jmeter.bat,打开JMeter图形窗口,并新建或打开一个测试计划,为该计划添加“结果查看树”和“聚合报告”。
jmeter分布式压测方案Apache JMeter 支持分布式压测,允许在多台机器上同时运行测试计划,以提高测试负载和模拟大量并发用户。
以下是一般的JMeter 分布式压测方案:步骤1:设置主节点1.安装JMeter:在一台机器上安装JMeter,并配置好所需的Java 环境。
2.创建测试计划:在主节点上创建JMeter 测试计划,并配置所有测试元件和脚本。
步骤2:设置从节点1.安装JMeter:在每个执行节点(从节点)上安装JMeter,并配置好Java 环境。
2.配置从节点:修改从节点的jmeter.properties文件,指定主节点的IP 地址和端口号,以便从节点能够连接到主节点。
设置mode=StrippedBatch,这可以减少从节点的资源占用。
步骤3:启动主节点在主节点上启动JMeter,可以通过命令行或图形界面进行。
在命令行中使用以下命令:bashCopy codejmeter -n -t your_test_plan.jmx -l your_test_results.jtl -R IP_of_Node1,IP_of_Node2,... -X其中,-R参数指定从节点的IP 地址,-X参数表示在测试执行结束后生成测试报告。
步骤4:启动从节点在每个从节点上启动JMeter,同样可以通过命令行或图形界面进行。
在命令行中使用以下命令:bashCopy codejmeter-server -Djava.rmi.server.hostname=IP_of_Node其中,IP_of_Node是从节点的IP 地址。
步骤5:监控和分析可以使用JMeter 的监听器或者其他监控工具来监控主节点和从节点的性能。
分析测试结果,检查任何潜在的性能问题。
注意事项:•所有节点的JMeter 版本应该一致。
•所有节点的测试计划文件(your_test_plan.jmx) 应该相同。
•确保网络连接可靠,所有节点之间的防火墙设置正确。
jmeter高级用法(一)JMeter高级用法1. 分布式测试JMeter可以在多台机器上同时运行,以模拟更真实的负载情况。
分布式测试能够实现更高的性能和更大规模的压力测试。
可以通过以下步骤进行配置:1.配置主控节点:在主机上运行JMeter,打开``文件并进行以下配置:remote_hosts=,,2.配置远程节点:在每个远程节点上,同样修改``文件:server_port=1099=600003.启动远程节点:在每个远程节点上运行以下命令启动JMeter服务:jmeter-server4.创建分布式测试计划:在主控节点上打开JMeter,配置测试计划并保存。
5.启动分布式测试:点击JMeter的“运行”按钮,选择“分布式测试”选项,并开始测试。
2. 多线程模型多线程模型能够模拟多用户同时访问系统的情况,以评估系统的性能。
JMeter提供了多种多线程模型:线程组线程组是JMeter测试计划的基本构建块,用于定义并发用户的行为。
可以设置线程数、循环次数、延迟时间等参数,以模拟多用户的并发访问。
线程组和定时器结合通过结合定时器,可以在一定时间间隔内发送一定数量的请求,模拟用户登录、浏览、下单等具有一定时间间隔的操作。
断言和响应断言断言用于检查服务器响应是否符合预期。
JMeter提供了多种类型的断言,例如响应代码断言、响应内容断言等。
可以在每个请求后添加断言来验证服务器的响应是否正确。
3. 监控和性能分析JMeter提供了多种监控和性能分析工具,以帮助定位性能瓶颈。
查看结果树可以使用“查看结果树”监听器查看每个请求的详细结果,包括响应时间、响应大小、请求参数等。
可以根据结果来分析性能。
聚合报告“聚合报告”监听器提供了请求的摘要信息,包括总体统计数据、每个请求的平均响应时间、吞吐量等。
可以通过聚合报告来了解整体性能情况。
监控服务器资源JMeter还提供了插件,可以监控服务器的CPU、内存、磁盘等资源使用情况。
Linux下的jmeter分布式搭建作者:n[ZSK]1、为什么要进⾏分布式Jmeter压测过程中,由于测试机配置有限,CPU、内存都可能是存在瓶颈。
如果使⽤很⼤的并发进⾏测试时,就可能会感到程序⽐较卡,⽆法继续增加压⼒了,这时候就需要搭建Jmeter分布式集群,远程启动测试。
2、分布式原理(1)选择其中⼀台作为调度机(master),其它机器做为执⾏机(slave)。
(2)执⾏时,调度机会把脚本发送到每台执⾏机上,执⾏机拿到脚本后就开始执⾏。
(3)执⾏完成后,Slave会把结果回传给master,master会收集所有Slave的信息并汇总。
3、安装jdk# mkdir -p /usr/lib/java #建⽴安装⽬录# tar -zxvf jdk1.8.0_151.tar.gz# mv /usr/lib/java/jdk1.8.0_161 /usr/lib/java/java8 #移动并重命名4、jdk环境配置(1)添加jdk8到系统环境变量# vi /etc/profile #编辑profile配置⽂件,点击“i”进⼊编辑状态,在最后添加下⾯的内容export JAVA_HOME=/usr/lib/java/java8export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:${PATH}退出vi ⽤ESC键只能切换到命令状态,然后输⼊“:wq ”命令进⾏保存⽂件并强⾏退出vi(2)source /etc/profile 让配置⽂件⽣效(3) java –version 查看jdk是否配置成功5、jmeter安装配置#mkdir -p /usr/local/jmeter #建⽴安装⽬录#unzip apache-jmeter-3.0.zip注意需要你已经安装unzip命令,如果没有安装就执⾏yum install unzip -y安装export JMETER=/usr/local/jmeter/apache-jmeter-3.0exportCLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH} export PATH=${JMETER}/bin/:${PATH}完成添加后下述命令使配置⽣效: source /etc/profile 检查是否配置成功:命令⾏输⼊jmeter –v将出现以下标志6、分布式配置前提:调度机、执⾏机部署同⼀版本jmeter和同⼀版本jdk,确保所有机器在同⼀个⼦⽹1、执⾏机:slave机上需要安装Jmeter,添加环境变量(前⾯已经介绍过了)⾃定义端⼝号:jmeter的bin⽬录下jmeter.properties,修改如下两项配置(默认端⼝10099)server_port=1099server.rmi.localport=1099启动slave机的服务,即bin⽬录下的jmeter-server.bat将会得到slave机器IP1、调度机:找到master调度机中jmeter的bin⽬录下jmeter.properties,修改如下配置:remote_hosts=服务机ip1:1099,服务机ip2:1099例如:remote_hosts=134.64.94.89:1099,134.64.94.76:1099(备注:多台slave之前⽤“,”隔开,我这配置了2台,对应前⾯slave机器的IP和Port)7、远程启动前提:(1)上传已经调试成功的脚本(testplan1.jmx)到调度机上(如: /root/results/testplan1.jmx)(2)执⾏机的jmeter服务已成功启动(3)调度机和执⾏机最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater⾃⾝会有消耗,所以建议单独⽤⼀台机器作为mater(这⾥是将调度机与执⾏机分开的)。
linux环境下执⾏jmeter性能测试脚本接上⼀篇⽂章中讲到做性能测试时,官⽅建议尽量使⽤⾮GUI模式运⾏压测脚本,今天我们就来实际操作⼀遍⾸先,先了解下jmeter在⾮GUI界⾯常⽤的⼀些参数介绍 -h help -n 通过⾮GUI模式运⾏脚本 -t 指定要运⾏的脚本 -l 保存运⾏的结果⽂件(每次运⾏前,要保证该⽬录下没有同名⽂件,否则将会报错。
即不存在xxx.jtl⽂件) -r jmeter.properties⽂件中指定的所有远程服务器 -e 脚本运⾏结束后⽣成html格式的报告 -o 指定⽤于存放html格式报告的⽬录(该⽬录必须为空,否则会报错)了解上述参数的意思之后,再来回头看jmeter启动窗⼝中的建议是不是瞬间清晰多了在真正开始执⾏脚本之前,还有个注意事项,如果脚本中有⽤csv数据⽂件设置元件的,需要将⽂件名路径修改⼀下,只保留⽂件名即可,如下图所⽰:将脚本和csv⽂件上传⾄服务器的同⼀⽬录,并输⼊启动命令:jmeter -n -t /usr/local/jmeter/apache-jmeter-5.3/file/EAM9.5标准版本性能压测脚本.jmx -l result.jtl -e -o /usr/local/jmeter/apache-jmeter-5.3/result/接下来只要等脚本运⾏结束就可以了,界⾯显⽰...end of run即代表运⾏结束脚本运⾏结束后,会⽣成⼀个叫result.jtl⽂件同时在result⽂件夹内会⽣成html报告,使⽤⽂件传输助⼿将 result.jtl⽂件和result⽂件夹内所有内容保存⾄本地,双击打开index.html⽂件即可查看到运⾏结果,jtl⽂件可以在jmeter的各种监听器中打开但这种运⾏⽅式有⼀个问题,就是当脚本还在执⾏过程中,如果断开了服务器连接,那脚本也会停⽌运⾏,所以最好的办法是让脚本在后台运⾏,⽅法也有两种:⼀.使⽤setsid命令setsid jmeter -n -t .jmx⽂件 -l .jtl⽂件 -e -o HTML报告存放⽬录⼆.使⽤nohup命令nohup jmeter -n -t .jmx⽂件 -l .jtl⽂件 -e -o HTML报告存放⽬录。
jmeter分布式压测步骤JMeter是一个非常强大的压力测试工具,它可以模拟大量的并发用户并向目标服务器发送请求。
为了更好地利用计算资源和提高测试的效率,可以使用JMeter的分布式功能来进行压力测试。
分布式压力测试的基本步骤如下:1.配置主控机:首先,在一台机器上作为主控机,安装好JMeter,并确保JMeter能够正常运行。
然后,打开JMeter,创建一个测试计划,添加所需的线程组、取样器、监听器和其他元件。
完成后,保存测试计划。
2.配置远程服务器:- remote_hosts:将主控机的IP地址添加到该配置项中。
- server.rmi.ssl.disable:将该配置项的值设置为true,以禁用RMI SSL。
3.启动远程服务器:在每台作为远程服务器的机器上启动JMeter服务器。
可以使用命令行界面(非GUI模式)来启动服务器,命令如下:``````4.配置主控机和远程服务器的连接:回到主控机上的JMeter,选择“远程测试”菜单下的“分布式测试”选项。
在弹出的窗口中,选择“添加远程主机”并填入远程服务器的IP地址。
可以添加多台远程服务器。
完成后,点击“保存”按钮。
5.启动测试:回到主控机的JMeter,点击“运行”按钮开始测试。
JMeter会将测试计划发送给每个远程服务器,并在远程服务器上运行。
主控机会收集并汇总来自各个远程服务器的结果。
6.查看测试结果:在测试运行期间,可以使用JMeter的监听器来实时监控测试过程和结果。
测试完成后,可以通过导出结果文件或查看聚合报告来查看更详细的测试结果。
总结:通过以上步骤,可以使用JMeter的分布式功能进行压力测试。
分布式压力测试可以更好地利用计算资源,提高测试的效率,并能够模拟大规模并发用户对目标服务器进行请求。
在配置和启动远程服务器时,需要确保服务器上已经安装了相同版本的JMeter,并正确地配置了主控机和远程服务器之间的连接。
最后,可以通过JMeter的监听器实时监控测试过程和查看详细的测试结果。
在命令行模式下进行JMeter分布式测试,需要使用以下命令:
`jmeter -n -t <test_plan_file> -l <result_file> -n`
其中,`-n`表示非图形界面模式运行,`-t`指定要运行的测试计划文件,`-l`指定结果文件存放路径。
此外,为了进行分布式测试,需要在所有需要参与测试的机器上部署Java和JMeter,并确保每台机器上的JMeter版本和插件版本相同。
同时,需要按照一定规则进行机器的标识和调度,例如使用不同的IP地址或主机名。
然后可以通过在GUI模式下运行JMeter的脚本,用tps插件实时展示图表,或者在命令行模式下运行脚本,生成jtl文件,在GUI界面的聚合报告里打开来展示tps 和响应时间等数据。
以上内容仅供参考,建议咨询专业人员获取更准确的信息。
jmeter实现分布式压测步骤环境说明:安装与控制机相同版本的jdk与jmeter1.修改控制机中的jmeter.properties⽂件将<remote_hosts=127.0.0.1>改为<remote_hosts=172.16.250.193>,其中172.16.250.193为负载机的IP,不设置端⼝为默认端⼝1099。
每个Agent机之间⽤英⽂半⾓逗号隔开,修改保存。
2.进⼊jmeter的bin⽬录中启动jmeter。
命令<./jmeter-server>。
但是报错,如下图。
解决办法:将启动命令改为:(./jmeter-server -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx)hostname为负载机ip地址。
该问题解决,但⼜报新错误,如下图。
解决办法:将负载机与配置机中的jmeter.properties⽂件中<server.rmi.ssl.disable=false>改为<server.rmi.ssl.disable=true>,并将前边#(注释)去掉。
继续使⽤./jmeter-server -Djava.rmi.server.hostname=xxx.xxx.xxx.xxxx命令启动,成功!3.在控制机中的jmeter中运⾏--远程启动--选择ip⼜报如下错误。
必须保证控制机和负载机在同⼀⽹段的条件下。
查看是否存在多块虚拟⽹卡。
解决办法:在我的电脑右键--管理--设备管理器--⽹络适配器中将虚拟⽹卡禁⽤。
直到在启动jmeter-server.bat⽂件时看到下图的ip为需要使⽤的ip(与负载机ip在同⼀个⽹段)4.重启jmeter-server.bat⽂件,再次在控制机中的jmeter中远程启动负载机。
运⾏--ok!(备注:启动负载机成功后⾃动运⾏,⽆需在gui模式中点击绿⾊运⾏按钮)说明:如果通过该模式(分布式压测),在察看结果树中Response data中如果数据为空,此为正常情况,jmeter就是这样设置的,原因是会影响性能。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系Linux下运行jmeter压测2017/07/19 775 linux 运行jmeter脚本压测 公司用的测试服务器一般都是linux,可以将jmeter脚本运行在linux下面,linux 下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上把脚本做好,然后在linux下运行即可,linux下运行jmeter是在jmeter的bin目录下的jmeter.sh这个shell脚本。
在jmeter/bin目录下执行:sh jmeter.sh -n –t aaa.jmx -l res.jtl -n 代表以没有图形化界面启动 -t 代表后面是测试脚本aaa.jmx 也就是我们做好的jmeter脚本-l 代表测试结果res.jtl 就是测试结果文件查看结果的话,在查看结果树视图中导入或者在聚合报告里面导入res.jtl就可以查看到测试结果了 Jmeter添加负载机 压测的时候,当并发比较大,一台机子已经启动不了那么多并发,这个时候就要使用多台负载机一起来发压力。
1)、Jmeter的bin目录下有一个jmeter-server,启动它即可, windows作为负载机的话,运行jmeter-sever.bat,(windows 作为控制机) linux 作为负载机的话,运行jmeter-server(以linux作为负载机为例) 2)、然后在作为控制机的(windows下)jmeter配置文件里添加负载机ip即可,jmeter的配置文件在bin目录下jmeter.properties,添加负载机的时候,在配置文件里面找到remote_hosts添加ip,remote_hosts=localhost:1099,192.168.58.130:1099 3)、在配置文件里面添加之后,重启(windows下)jmeter,在运行的时候,就可以看到远程启动负载机的ip了,(必须先启动1)中linux下负载机jmeter-server 服务)可以选择他来运行这个脚本,全部运行的话,也就是所有负载机上的全部都启动。
在linux下实现jmeter的分布式测试
--刘红霞
目录
一.录制jmeter脚本 (2)
1.1 下载运行jmeter (2)
1.2 添加线程组 (2)
1.3 集合点 (3)
1.4. 添加请求 (4)
1.5. 配置http请求 (5)
1.6. 参数化变量 (6)
1.7. 监控器—聚合报告 (7)
1.8. 监控器—PerfMon Metrics Collector (9)
1.9. 监控器—JMXMon Samples Collector (10)
1.10. 监控器—察看结果树 (11)
1.11. 断言 (12)
1.12. 监听器—断言结果 (15)
二. 如何监控服务器端的CPU与内存? (16)
三. 在linux下实现jmeter的分布式 (18)
要实现在linux下jmeter分布式测试,首先必须学会在window系统下录制jmeter脚本,所以在正式介绍该问题之前,先介绍下window系统下jmeter 脚本的录制和jmeter的一些小的插件.
一.录制jmeter脚本
1.1下载运行jmeter
下载jmeter,如下的版本:
运行bin下的jmeter.bat
1.2 添加线程组
线程数:n,代表的是本次测试模拟的是n个用户
Ramp-Up Period(in seconds):m,代表的是n个用户的启动延时为m秒,通俗点讲,就是如果线程数为10,该值为5,那么每秒钟将要启动2个用户
循环次数:s,代表的是该线程组运行的次数,选择“永远”会一直执行下去调度器:个人理解主要是用于当测试系统稳定性时,时间上的一个把控
1.3 集合点
在jmeter下的集合点,是通过定时器的Synchronizing Timer插件完成的
表示的是集合到30个用户后,同时对系统进行某一个事物,集合点主要是用于并发的测试,尤其是要测试接口并发的时候,需要配置该插件
1.4. 添加请求
在这里以接口并发测试为例子,
接口名字:获取题库初始版本号,详细内容,如下:
根据接口的性质,这里添加http请求,如下:
注:该http请求,必须是在线程组下添加
1.5. 配置http请求
名称:可以修改为代表该请求功能性的名称
服务器名称或IP:可以填写域名()或ip,取决于程序部署到了那台服务器上
协议:http,方法:post,取决于研发设计的接口方法,编码格式:utf-8,
决定了输出的结果是否为中文
路径:填写接口文档中的该接口路径就行,最后一定不要忘了加”?”
参数:license,是入参,如果入参license是一个固定的值,值的部分可以直接填写值,如果license是一个变化的量,需要对参数进行参数化,值填写${license},参数化如下.
1.6. 参数化变量
参数化配置
Filename:文件路径,参数值存放的文件,参数在CSV中是以列区分的
Variable Name:变量名称
Allow quoted data:是否支持引用
Recycle on EOF:当读取变量到结尾,是否支持变量值得循环
Stop thread on EOF:当读取变量到结尾时,是否停止该线程
Sharing mode:变量模式,该变量的值,是适用于当前线程还是所有线程1.7. 监控器—聚合报告
通过上面的配置,接口请求的功能就配置完成了,接下来的配置主要
就是对结果的监控与分析
http请求---监控器—聚合报告:代表的该监控器监控的是该请求的结果
聚合报告,能够简明扼要的显示测试结果
Samples:样本数,模拟的用户数目
Average:所有用户的平均响应时间
Median:根据用户的响应时间,按照从小到大的顺序排序,前50%的用户的平均响应时间
90%line: 根据用户的响应时间,按照从小到大的顺序排序,前90%的用户的平均响应时间
95%line: 根据用户的响应时间,按照从小到大的顺序排序,前95%的用户的平均响应时间
99%line: 根据用户的响应时间,按照从小到大的顺序排序,前99%的用户的平均响应时间
Min:最小的用户响应时间
Max:最大的用户响应时间
Error:请求的错误率
Throughput:吞吐,每秒钟处理的请求个数
KB/sec:每秒钟获取的数据大小
1.8. 监控器—PerfMon Metrics Collector
PerfMon Metrics Collector主要是用于监控服务器的CPU与内存. 配置监控器,如下:
IP:要监控的服务器的ip
端口:4444
如果要完成该监控,关键的在服务器端装插件,具体过程下面的2详讲1.9. 监控器—JMXMon Samples Collector
JMXMon Samples Collector:主要是用于监控java开发中的JVM
配置监控器,如下:
关键在服务器端要开启,JVM的7199端口,用于监控
以堆内存(max)为例,
URL:service:jmx:rmi:///jndi/rmi://192.168.200.7:7199/jmxrmi
Object Name:ng:type=Memory
Attribute:HeapMemoryUsage
Key:max
参数的名称,属性,值可以参考jconsole中的参数信息
1.10. 监控器—察看结果树
主要是用于看响应结果的,查看成功的数据是否为期望的响应数据,失败的结果,查看失败的原因,如下:
1.11. 断言
响应断言:针对的响应内容进行检测,看是否符合期望结果
响应数据中必须有true,所以配置如下:
响应的内容中,数据部分不能够为空,所以配置如下:
大小断言:响应的内容的大小进行检测
响应的内容不能够为空,配置如下,字节>0
1.1
2. 监听器—断言结果
根据10添加了合适的监听器,针对监听器的结果,就要通过监听器,断言结果查看了。
针对断言结果,会输出在空白处的
二. 如何监控服务器端的CPU与内存?
1. 在jmeter客户端,添加监控CPU,内存的插件-JMeterPlugins-Standard-1.3.0.zip,解压放置在jmeter的
安装路\lib\ext下,重启jmeter,能够在jmeter监控中出现PerfMon Metrics Collector,监控服务器性能
2. 在jmeter要监控的服务器中,装插件ServerAgent-2.2.1,且解压,启动该插件 sh
startAgent.sh
3. 在jmeter客户端,监控中添加PerfMon Metrics Collector,输入要服务器信息
三. 在linux下实现jmeter的分布式
1.如果linux服务器是二台电脑,其中一台作为服务器(19
2.168.200.121),一台为控制器(192.168.200.122)
2.更改控制器192.168.200.122的jmeter中jmeter.properties中的remote_hosts参数,增加192.168.200.121:1099
3. 开启192.168.200.121与192.168.200.122上的jmeter –server服务
正常启用方法:进去jmeter-server所在的文件夹,执行:sh jmeter-server
或者nohup sh jmeter-server &
Nohup的意思:不在cli下输出执行信息
&:意思是后台执行
如果ps –ef |grep jmeter出现如下的界面,说明启动成功
如果这个时候,起不来,怎么办?
检查下linux主机名与jmeter-server中的服务器主机名字是否一致,最好linux主机名不要使用127.0.0.1,
修改为本机的IP地址
4. 在控制器192.168.200.122上,运行测试文件,如下:
注:test1,jmx为在window环境下录制好的脚本
Sh jmeter –n –t test1.jmx –l ss1.jtl –r
-r 代表启动所有的远程机器
-R 192.168.200.121,192.168.200.122代表的启动某些远程机器
5. 在window下,新建监控,查看结果即可
注意要想再window下查看运行结果,就必须在做jmeter脚本的时候,添加各个监控器的保存路径
如上,把对JVM的监控保存到了linux压测服务器的
/opt/apache-jmeter-2.13/report/JVM-yy1.CSV该目录下,要想知道在运行脚本中JVM服务器的性能,只需要把该CSV文件导出,在window系统下的jmeter里打开就能生成需要的图像。