一、插件准备

下载地址:https://jmeter-plugins.org/downloads/all/

1、下载插件管理:

2、将管理插件放到jmeter/../ext文件夹中

3、在插件管理中搜索PerfMon(测试服务器的cpu等)

添加插件

host/ip设置为被测试服务器,就可以测试服务器的cpu、内存等

4、下载ServerAgent-2.2.1.zip

这里给一个百度盘链接http://pan.baidu.com/share/link?shareid=2974853586&uk=1528396991&fid=512652594025385

将下载的zip放到服务器上解压,如果是linux(需要jre环境),就进入serverAgent目录,运行startAgent.sh命令,如下:

启动:>>./startAgent.sh --udp-port 0 --tcp-port port(agent起来之后所监听的端口)

停止:>>./startAgent.sh --udp-port 0 --auto-shutdown

如果是windows环境:进入serverAgent目录,直接双击startAgent.bat,启动agent

注:agent启动默认监听的端口是4444

二、分布式准备

在使用Jmeter进行性能测试时,如果并发数比较大(比如5000+并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。

一、Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为控制机(master),其它机器做为执行机(slaverr)。

  2、执行时,master会把脚本发送到每台slaver上,slaver 拿到脚本后就开始执行,slaver执行时不需要启动GUI,如果引用到csv等外部的文件,则每台slaver所在的机器都需要相应位置放置该文件。

  3、执行完成后,slaver会把结果回传给master,master会收集所有slaver的信息并汇总。

二、执行机(slaver)配置:

  1、slaver机上需要安装Jmeter。

  2、添加环境变量:JMETER_HOME=D:\B_TOOLS\apache-jmeter-2.13,此处为你Jmeter的路径。(这一步本人从来忽略依然不影响使用,关键在于每一台机器上都需要安装上java,因为jmeter就是java写的)

  3、如果slaver是在windows下则直接启动bin目录下的:jmeter-server.bat;如果slaver是在liniux下则使用如下命令来启动:nohup ./jmeter-server -Djava.rmi.server.hostname=192.168.237.129 &,其中ip为slaver所在的机器的ip。

 4、 需要配置多少台就按上面的方法配置多少台。

三、调度机(master)配置:

1、脚本:简单的一个访问百度的脚本:

2、找到Jmeter的bin目录下jmeter.properties文件,修改如下配置IP和Port是slaver机的IP以及默认的1099端口

remote_hosts=192.168.205.149:1099,192.168.205.150:1099,192.168.12.36:1099

3、选择远程启动-->远程全部启动:

四、自定义端口:

上面其实已经实现了Jmeter的分布式测试,这部分主要介绍下如何自定义slaver端口:(需要把前面#注释去掉)

  1、slaver:在slaver机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:

server_port=1888

server.rmi.localport=1888

  2、启动slaver机上的jmeter-server.bat,如下图,端口已经修改为:1888

  3、master:修改master机器的jmeter.properties文件:

remote_hosts=10.13.223.202:1000,10.13.225.12:1888

五、注意:

  1、控制机本身也可以作为一台slaver,在remote_hosts后面加上127.0.0.1即可,但控制机(master)和执行机(slaver)最好分开,由于master需要发送信息给slaver并且会接收slaver回传回来的测试数据,其自身会有较大消耗,所以建议单独用一台机器作为mater。

  2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slaver上拷一份且路径需要设置成一样的。

  3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

4、最好master和slave都是一样的jmeter版本,jdk版本

六、报错:出现下面错误后,要检查

1、关闭所有防火墙

2、slave有时会有虚拟网卡,要禁用,ip诸如169.254.129.192之类的(我就是最后这一步)

3、如果本机也作为slave时,需要修改配置文件中的127.0.0.1为真正的ip地址,通过ipconfig查看

4、slave机器需要打开jmeter-server.bat

Jmeter对服务器进行压力测试的更多相关文章

  1. 转:使用 JMeter 完成常用的压力测试

    使用 JMeter 完成常用的压力测试 就目前 Java EE 的平台下开发的软件来说,这种节点通常可能是:Web 服务器.数据库服务器和 JMS 服务器.它们都是请求主要发生的地点,请求频率较其它的 ...

  2. Windows和Linux的Jmeter分布式集群压力测试

    Windows的Jmeter分布式集群压力测试 原文:https://blog.csdn.net/cyjs1988/article/details/80267475 在使用Jmeter进行性能测试时, ...

  3. JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)

    JMeter (3) -- JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial) 主要内容 JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点 ...

  4. 使用 JMeter 完成常用的压力测试 [转]

    讲到测试,人们脑海中首先浮现的就是针对软件正确性的测试,即常说的功能测试.但是软件仅仅只是功能正确是不够的.在实际开发中,还有其它的非功能因素也起着决定性的因素,例如软件的响应速度.影响软件响应速度的 ...

  5. 使用 JMeter 完成常用的压力测试

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. 【转】使用 JMeter 完成常用的压力测试

    本文介绍了 JMeter 相关的基本概念.并以 JMeter 为例,介绍了使用它来完成最常用的三种类型服务器,即 Web 服务器.数据库服务器和消息中间件,压力测试的方法.步骤以及注意事项.      ...

  7. 【转】使用JMeter 完成常用的压力测试(三)

    使用JMeter 完成常用的压力测试 发布时间: 2008-9-27 15:33    作者: 未知    来源: 网络转载 字体:  小  中  大  | 上一篇 下一篇 | 打印  | 我要投稿 ...

  8. 【转】使用JMeter 完成常用的压力测试(二)

    使用JMeter 完成常用的压力测试 Login.jsp 和welcome.jsp.其中 login.jsp 负责生成 User 对象,并调用 User 的login.当 login 返回为 true ...

  9. Jmeter教程 简单的压力测试【转】

    Jmeter教程 简单的压力测试[转] Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 阅读目录 什么是压力 ...

随机推荐

  1. [20190531]ORA-600 kokasgi1故障模拟与恢复(后续).txt

    [20190531]ORA-600 kokasgi1故障模拟与恢复(后续).txt --//http://blog.itpub.net/267265/viewspace-2646340/=>[2 ...

  2. cin.get()解密

    最近在使用cin.get()函数时遇到了一个迷惑行为,现已解开. 一.cin.get()的用法 char ch; ch = cin.get(); //第1种用法 cin.get(ch); //第2种用 ...

  3. openpyxl的简单使用

    openpyxl的简单使用 openpyxl 操作excel的库,只能操作xlxs 文件, xlrd/xlwt这两个库能兼容xls(2003版) 安装 pip install openpyxl如果ex ...

  4. C++学习七 C++实现add(1)(2)(3)

    一.代码实现: class Yoba { public: Yoba(int n) : _n(n) {} Yoba operator() (int n) { return Yoba(_n + n); } ...

  5. Shiro内置过滤器

    Shiro内置过滤器 DefaultFilter 枚举类定义了shiro所有的默认过滤器. package org.apache.shiro.web.filter.mgt; public enum D ...

  6. C语言中关于输出n个数后就换行的问题。

    例如:n=10 ........; n++; if(n%10==0&&n!=0)    //因为当n=0时,n%10的值也是0,就也会转行,为了防止这种情况的发生,就用了&&a ...

  7. JSX中引用CSS的一种方法

    第一步:在page或者pages目录下新建一个css文件,例如style.css: 第二步:在jsx页面中import该css文件,例如: import style from './style.css ...

  8. ThreadLocal 简单解析

    ThreadLocal 简单解析 基于jdk1.8 ThreadLocal一定不陌生,开发中常用,也是面试里的常客了,但是往往我们可能只是知道该类的作用.学习该类对于个人的多线程编码能力是大有裨益的, ...

  9. 小玩意儿之Gitlab 代码提交日志同步到禅道项目管理系统

    以前都是使用禅道官方推荐的服务器本地扫描的方式,但其实不太方便,需要跟着项目的变化,不断的在配置文件维护项目相应仓库的配置. 然后现在Web Hooks越来越普遍的情况下,想尝试一种新的方式.看了禅道 ...

  10. 镭神激光雷达对于Autoware的适配

    1. 前言 我们的自动驾驶采用镭神激光雷达,在使用Autoware的时候,需要对镭神激光雷达的底层驱动,进行一些改变以适配Autoware. 2. 修改 (1)首先修改lslidar_c32.laun ...