之前的博客:jemter(二十三):分布式测试简略的介绍了利用jmeter做分布式测试的方法,当时只是介绍了背景和原因,以及基本的配置操作,有同学说写得不够详细. 正好今年双十一,我司的全链路压测,也尝试了jmeter分布式压测的手段.这篇博客,介绍下利用jmeter在NGUI模式下进行分布式压测的一些小技巧和注意事项. 一.压测机 1.数量&成本 无论是从成本角度还是维护的难易方面,压测机的数量,适量就好. 举个例子,8C16G的一台服务器,部署jmeter后,根据我个人的测试比对数据,配置≤…
在使用jmeter压测过程中,可能会度遇到内存溢出的错误,这是为什么呢?因为jmeter是java写的应用,java应用jvm堆内存heap受负载机硬件限制,虽然我们可以调整堆内存大小,但是单机无法支撑数以万计大并发,此时,需要多个负载机进行分压测试,这样性能瓶颈就不会是我们的负载机了. 分布式的原理 jmeter分布式压测时,选择其中一台作为控制机,其余的机器做为负载机,执行时,控制机会把脚本发送到每个负载机上,负载机获取到脚本就执行脚本(负载机只需要启动jmeter-server.bat或者…
jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对jmeter进行分布式测试: 1:先说说分布式测试原理 处理过程: 一:调度机master启动以后,会拷贝本地的jmx文件分发到远程的slave机器上: 二:slave机器拿到脚本以后启动命令行模式去执行脚本,对于每台slave机器拿到的脚本都是一样的,所以如果jmx脚本为50个线程跑3分钟,那么实际并发就是50*3=1…
哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是1099 2.启动jmeter-server (这里启动的时候可以看到ip后面的端口不是1099,这里不用管,1099是client和server的通信端口,和这个没有关系) 二.client端:配置master和slave 1.进入到jmeter的bin目录下,打开jmeter.properties c…
1.简介 千呼万唤始出来,这一篇感觉写了好久,总想写的清楚明白简洁,但是还是洋洋洒洒写了好多,希望大家喜欢吧!本来打算将这一篇文章是放在性能测试中讲解和分享的,但是有的童鞋或者小伙伴们私下问的太多了,实在是忍不了也解答烦了,索性就在这里分享一下吧.权当参考,但是希望对大家有所帮助. 2.为什么要使用分布式测试 (1)Jmeter是基于java程序运行的,在windows上使用Jmeter进行性能测试时,非常耗费客户机的CPU和内存,如果并发数稍微大一点(比如100.1000...并发),单台电脑…
一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口压测最方便) 模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会目标服务器造成巨大的负载,类似于简单的DDOS攻击等. 3.webbench webbench首先fork出多个子进程,每个子进程都循环做web访问测试.子进程把访问的结果通过pi…
一.Jmeter4.0分布式压测准备工作 压测注意事项            the firewalls on the systems are turned off or correct ports are opened.            系统上的防火墙被关闭或正确的端口被打开. all the clients are on the same subnet.            所有的客户端都在同一个子网上. the server is in the same subnet, if 19…
项目中使用Jmeter进行大并发压测时,单机受限内存.CPU.网络IO,会出现服务器压力还没有上 去,但压测服务器由于模拟的压力太大死机的情况.JMeter的集群模式可以让我们将多台机器联合起来 一起产生负载,从而弥补单台机器负载生成能力不足的问题. 分布式压测原理 1.控制机为Master,负载机为Slave 2.Master启动后,会拷贝jmx脚本文件到所有的Slave上 3.Slave会回传压测数据给Master,最后由Master汇总出结果文件 注意事项 1.脚本文件上传到master即…
之前一篇博文写的是如何在Linux上使用jmeter压测,这篇介绍下Linux上jmeter的分布式压测. 和windows上的分布式类似,需要配置agent节点和控制机 一.Agent节点配置 1. 首先安装好jdk和jmeter环境,具体见我的上一篇文章.然后打开配置文件 /bin/jmeter.properties 找到并取消这段配置的注释 server.rmi.ssl.disable=false ,false改成true. # Password of Trust store #serve…
单台压测机通常会遇到客户端瓶颈,受制于客户机的性能.可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况. jdk和jmeter的下载和安装就不说了 jmeter 分布式压测原理: 分布式压测分为两块: 控制器(controller)和代理(agent) controller 负责把脚本分发给 agent执行. agent 负责执行脚本,产生对服务器的实际压力,agent 不需要运行 jmeter,运行 …
1.Jmeter4.0分布式压测准备工作 简介:讲解Linux服务器上jmeter进行分布式压测的相关准备工作 1.压测注意事项 the firewalls on the systems are turned off or correct ports are opened. 系统上的防火墙被关闭或正确的端口被打开. all the clients are on the same subnet. 所有的客户端都在同一个子网上. the server is in the same subnet, i…
首先要了解jmeter分布式压测的基础概念:master为统计结果的服务器,slave为各台压力机,如下图所示 一.结论 针对master 1.修改jmeter.properties的client.rmi.localport=61099(值可以是自定义的,默认为0时会随机分配端口)2.防火墙打开端口61099-61101(范围也可以设大一点,目前源码我只发现了其使用了61010和61011,即配置的client.rmi.localport加1和加2)3.修改jmeter.properties的s…
stop.sh需要跑Jmeter的服务器上安装Jmeteryum install lrzsz 安装rz.sz命令rz jemter的压缩包 拷贝到/usr/local/tools下面unzip apache-jmeter-3.0.zip 解压 权限修改chmod 777 * 修改权限 时间修改ntpdate s2m.time.edu.cn 同步到服务器或者 ntpdate time.nist.gov时间不一致生成报表会有问题本机Window是的时间修改(与时间服务器同步):  w32tm /re…
Jmeter 在linux下的分布式压测 0.将 windows机器作为master 控制机(同时也兼做负载机slave), linux机器作为 负载机 slave. 1.linux环境安装 : (1).在linux(centos)下需要安装JDK (1.8) 和 JMETER (5.0) jdk文件为:jdk-8u131-linux-i586.tar.gz jmeter 文件为(跟windows下的是同样的文件,本身是java编写,跨平台):apache-jmeter-5.0.zip(2).在…
环境说明:安装与控制机相同版本的jdk与jmeter 1.修改控制机中的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>.但是报错,如下图. 解决办…
很多性能大牛说一台机器的压测其实不准确,于是搜索网上的分布式压测练习了一番 目录 1.环境准备 2.控制机和压测机配置 3.执行分布式压测 1.环境准备 1.1准备一台windows作为控制机(master)(ip:XX.XX.XX.130),2台linux作为负载机(slave)(ip:XX.XX.XX.128)(ip:XX.XX.XX.129) 1.2三台机器都配置同样版本的java和jmeter linux环境变量添加: export JAVA_HOME=/opt/jdk1.8.0_161…
JMeter自身带有Master-Slave压测框架,对于并发量不是很高的压力情况下(比如tps低于5000),该方案是可行的,并且使用起来非常方便,只要在配置文件或者命令行工具的参数做一些补充,即可以实现分布式压测,具体请参见JMeter官网操作步骤或者UncleYong的文章 但JMeter的Master-Slave有诸多的缺陷: 1.Master机器的瓶颈,JMeter通过RMI的方式来实现Master-Slave的通信,所有的信息最终都会汇总到主机上,一旦slave机器数量增多,并且sl…
1.什么叫分布式压测? 分布式压测:模拟多台机器向目标机器产生压力,模拟几万用户并发访问 2.分布式压测原理:如下 3.更多补充.....待添加…
概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等到测试完成后去看Report,如果是长时间压测,比如压测1~2天,那就更烦人了. 压测的时候,我们实时通过监听器 GenerateSummaryResults汇总输出,可以看到如下内容 GenerateSummaryResults汇总展示了压测中需要关注的大量信息,其中包括:Avg (Average…
1)Jmeter4.0介绍 jmeter是个纯java编写的开源压测工具,apache旗下的开源软件,一开始是设计为web测试的软件,由于发展迅猛,现在可以压测许多协议比如:http.https.soap.ftp.database数据库.LDAP  轻量目录访问协议.TCP.SOMP(简单邮件协议)等,由于是纯java编写,可以在苹果.window或者Linux下运行,全功能的测试IDE,允许快速的建立测试计划(从浏览器或本地应用程序,官网地址:http://jmeter.apache.org)…
背景:公司为了满足大并发的情况,需要测试组配合,就需要分布式压测,这里我把我踩过坑都记录下来: 环境:Linux + jmeter-v.5.1.1;使用3台2核4G的压力机: Q1: Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks A1:解决思…
王诚强,荔枝微课基础架构负责人.热衷于基础技术研发推广,致力于提供稳定高效的基础架构,推进了荔枝微课集群化从0到1的发展,云原生架构持续演进的实践者. 本文根据2021年4月10日深圳站举办的[腾讯云原生技术开发日] 线下活动中,[荔枝微课]基础架构负责人"王诚强"关于"基于kubernetes搭建分布式压测系统"的演讲整理而成. 关注[腾讯云原生]公众号后台回复[lzwk],可获得该演讲PPT. 大家好,今天想和大家分享的主题是基于kubernetes搭建分布式压…
解决办法:1.控制机和代理机:修改jmeter.properties中server.rmi.ssl.disable=true 不启动SSL2.控制机和代理机: Slave(从压力机)启动jmeter-server时添加-Djava.rmi.server.hostname参数,即./jmeter-server -Djava.rmi.server.hostname=从压力机ip地址(linux下)jmeter-server -Djava.rmi.server.hostname=从压力机ip地址(wi…
在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能. 一.Jmeter分布式执行原理: 1.Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave). 2.执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的. 3.执行完成后,…
一.JMeter概述jmeter除了可以做借口测试外,还可以做压力测试:首先介绍jmeter中各个组件在压力测试中扮演的角色 1)线程(Threads(Users))即虚拟用户,线程组里可设置需要模拟的并发用户数.并发时间或并发次数.线程的启动频率. 2)取样器(Sampler) 是性能测试中向服务器发送请求并等待响应的最小单元,每个采样器可以设置不同的属性. 常用的JMeter取样器: HTTP请求.FTP请求.Java请求.JDBC请求.SOAP/XML-RPC请求.Junit请求.JMS请…
当前项目中重构了消息服务,需要对消息服务接口做性能压测,评估消息服务的性能情况 通过和开发对接,目前消息服务是通过dubbo接口对内提供服务,所以才有了这边文章的记录 最初的压测这个dubbo接口有三种思路: 1.第一种就是基于业务,比如注册业务,注册成功后,会发送短信消息到用户手机,通过业务调用消息服务,最容易实现,但是业务瓶颈最大导致测试结果不准 2.第二种是通过将dubbo接口上面做一层包装,提供一个http接口访问dubbo接口,需要提供二次开发,需要时间,而且高并发下,需要部署在tom…
环境: jmeter: apache-jmeter-3.3 jdk: 负载生成: 被测机: 一. 多机负载压测: 概述: 1.修改jmeter.properties配置文件 remote_hosts=127.0.0.1 remote_hosts=192.168.1.142:1099,localhost:1099 2.启动 控制端启动:jmeter.bat: 负载生成器启动sever-jmeter.bat 远程启动: 3.出现问题: 负载生成器由于装有虚拟机,导致无法连接:   解决:禁用虚拟网卡…
环境准备 linux centOS(工作环境) python3.4及以上 pip3 JDK8 git1.9及以上 gradle2.13级以上 准备过程中的坑 这些环境准备没什么太大问题,都是wget下来安装就行,唯一有一个python3安装的坑. 由于本人安装的是python3.6.1,pip3和setupTools都是集成在python安装包里的,比python2时代方便许多,当一切都井井有条后,pip3 install esrally,报出如下错误 Could not fetch URL h…
1.添加断言(检查点) 在需要压测的接口下添加--断言--响应断言,取接口响应中包含有的数据即可 检查点HTTP请求-->断言-->响应断言1.名称.注释2.Apply to//作用于哪里(1)主请求和子请求(2)主请求(3)子请求(4)用户使用的变量名3.要测试的响应字段(1)响应文本//以文本的形式(2)响应代码//200(3)响应信息//OK(4)响应头(5)请求头(6)URL样本//断言url里面(7)Document(text)//Document模式(8)忽略状态//不管状态码是多…
前言 压测太难?局域网压力无法判断服务器网络指标?无法产生非常大的并发量?云性能太贵? 也许我们可以把各种简单的工具拼起来进行压力测试! 准备 https://cloud.tencent.com/product/scf https://cloud.tencent.com/product/lm 云压测背景 常规压测工具,所有请求均从本地出发,走局域网可能导致网络请求的实际效果不够真实,所以尝试引入云性能压测工具(贵). 压测工具 腾讯wetest+SCF+jmeter 压测原理 通过本地使用jme…