安装

下载地址:http://jmeter.apache.org/download_jmeter.cgi

安装前提(因为jmeter依赖于Java所以必须先配置好java)

下载后解压:

tar -xvzf apache-jmeter-3.1.tgz

Jmeter参数

  1. -h, --help
  2. print usage information and exit
  3. #打印帮助信息 
  4. -v, --version
  5. print the version information and exit
  6.           #打印版本信息
  7. -p, --propfile {argument}
  8. the jmeter property file to use
  9.           #运行时指定property文件,默认是使用JMETER_HOME/bin目录下的jmeter.properties,如果用户自定义有其它的配置,在这里加上
  10.           #用法如下: -p user.properties
  11. -q, --addprop {argument}
  12. additional property file(s)
  13.           #其它配置文件,如JVM参数等等
  14. -t, --testfile {argument}
  15. the jmeter test(.jmx) file to run
  16.           #要运行的jmeter脚本
  17. -j, --jmeterlogfile {argument}
  18. the jmeter log file
  19.           #指定记录jmeter log的文件,默认为jmeter.log
  20. -l, --logfile {argument}
  21. the file to log samples to
  22.           #记录采样器Log的文件
  23. -n, --nongui
  24. run JMeter in nongui mode
  25.           #以nongui模式运行jmeter
  26. -s, --server
  27. run the JMeter server
  28.           #运行JMeter server
  29. -H, --proxyHost {argument}
  30. Set a proxy server for JMeter to use
  31.           #代理服务器地址
  32. -P, --proxyPort {argument}
  33. Set proxy server port for JMeter to use
  34.           #代理服务器端口
  35. -u, --username {argument}
  36. Set username for proxy server that JMeter is to use
  37.           #代理服务器的用户名
  38. -a, --password {argument}
  39. Set password for proxy server that JMeter is to use
  40.           #代理服务器用户名对应的密码
  41. -J, --jmeterproperty {argument}={value}
  42. Define additional JMeter properties
  43.           #定义额外的Jmeter属性
  44. -G, --globalproperty (argument)[=(value)]
  45. Define Global properties (sent to servers)
  46. e.g. -Gport=123
  47. or -Gglobal.properties
  48.           #定义发送给server的全局属性
  49.          #如:-Gport=123 或者-Gglobal.properties(指定监听server的端口)
  50. -D, --systemproperty {argument}={value}
  51. Define additional System properties
  52.           #定义系统属性
  53. -S, --systemPropertyFile {filename}
  54. a property file to be added as System properties
  55. #通过指定的property文件定义系统属性
  56. -L, --loglevel {argument}={value}
  57. Define loglevel: [category=]level
  58. e.g. jorphan=INFO or jmeter.util=DEBUG
  59.           #定义日志等级
  60. -r, --runremote (non-GUI only)
  61. Start remote servers (as defined by the jmeter property remote_hosts)
  62.           #启动远程server(在jmeter property中定义好的remote_hosts),公在non-gui模式下此参数才生效
  63. -R, --remotestart  server1,... (non-GUI only)
  64. Start these remote servers (overrides remote_hosts)
  65.           #启动远程server(如果使用此参数,将会忽略jmeter property中定义的remote_hosts)
  66. -d, --homedir {argument}
  67. the jmeter home directory to use
  68. #Jmeter运行的主目录
  69. -X, --remoteexit
  70. Exit the remote servers at end of test (non-GUI)
  71.           #测试结束时,退出(在non-gui模式下)

 配置jmeter client & server

了解了上面的各个参数后,开始配置分布式测试

先看一下官方文档是怎么说的,中文为我添加的注释:

1. the firewalls on the systems are turned off.#1.关闭防火墙

2. all the clients are on the same subnet.#2.所有的客户端都在同一个子网内

3. the server is in the same subnet, if 192.x.x.x or 10.x.x.x ip addresses are used. If the server

doesn't use 192 or 10 ip address, there shouldn't be any problems.#3.server也必须在同一子网内如果使用192.x.x.x或者10.x.x.x这样的IP地址,如果server没有使用192或者10这样的IP地址,(server同client不在同一子网内)将不会有任何问题

4. Make sure JMeter can access the server.#4.确保Jmeter可以访问到server

5. Make sure you use the same version of JMeter on all the systems. Mixing versions may not work

correctly.#5.确保各系统的Jmeter版本保持一致,不同版本的Jmeter将不能很好的工作

一些术语的解释:

· master,以GUI模式运行,同时控制测试的运行,在这里就是client,启动脚本所在的那台机器。

· slave,运行jmeter-server并从master接收指令、向目标服务器发送请求

设置jmeter-server:

用文本编辑器打开JMETER_HOME/bin目录下的jmeter.properties文件,添加运行jmeter-server的主机IP到remote-hosts

remote_hosts=10.0.0.158, 10.0.0.140,localhost

如果你不希望你的客户端也作为jmeter-server运行的话,把localhost从上面的配置中移除。

这里要注意:建议不用localhost而是使用实际的IP,否则容易报错。

实战阶段:

一、在客户端以gui模式启动jmeter,然后打开或者创建一个测试脚本

二、从gui模式启动所有的远程server,方法:运行-远程全部启动,看下图,也可以单独启动某一个jmeter-server

三、使用no-gui方式进行压力测试

jmeter -t "JMS Point-to-Point.jmx" -n -l testresult.csv -r

-t:从哪个jmx启动

-n:以no-gui的方式进行压力测试

-l:记录log

-r:启动远程server(在jmeter property中定义好的remote_hosts),公在non-gui模式下此参数才生效

至此,以经通过non-gui模式运行Jmeter分布式测试了

这里有一点小贴士:以分布式运行Jmeter,是在所有的server上运行同样的测试脚本,也就是说,如果你打算1s起100个线程,如果你用5台机器进行分布式测试,那么将脚本调试至1s起20个线程,否则则是1s起了500个线程,这样可能跟你的预期有所差别

【转】Jmeter分布式压力测试的更多相关文章

  1. 性能测试工具 jmeter 分布式压力测试实操

    性能测试工具 jmeter 分布式压力测试实操 本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布 ...

  2. jmeter分布式压力测试实践+登录为例

    1.一张分布式压力的图解,如下 准备: 1.两台slave 2.一个master 3.待测目标地址 http://XXX 准备环境:linux环境,master如果可以最好有可视化电脑界面,便于jmx ...

  3. linux上实现jmeter分布式压力测试(转)

    摘要:最近根据公司工作的需求,学习了一些压力测试的知识,目前,公司使用的是jmeter进行压力测试.下面就记录下近期的学习.我想将这次的博文分成三个部分:1.开始测试前的准备(测试环境的搭建)2.在一 ...

  4. Jmeter 分布式压力测试

      JMeter中进行分布式测试 作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心, ...

  5. Jmeter分布式压力测试

    有时候,一台机器无法支持很多个虚拟用户并发,这时就会使用分布式测试来实现这个功能,jmeter是有提供这个功能的.要实现分布式测试,得在主从(agent和controler)机器的jmeter安装目录 ...

  6. jmeter分布式压力测试配置操作

    前提准备条件:1.主控机一台为master,ip地址:10.8.88.1772.负载机一台为slave, ip地址:10.8.88.1193.主控机和负载机都安装一样的JDK环境和jmeter版本.5 ...

  7. Jmeter性能测试-分布式压力测试

    作为一个测试行业的菜鸟,由于投身于一个小公司,包揽所有的测试.刚开始的功能测试到接口测试,稳定性测试,兼容性测试等,一般由于是小项目所以对于性能有所忽略,也没怎么涉及,公司接了个大项目,后期对于性能上 ...

  8. JMeter接口压力测试课程入门到高级实战

    章节一压力测试课程介绍 1.2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演示 简介: 讲解课程安排,使用的Jmeter版本 讲课风格:涉及的组件,操作配置多,不会一次性讲解,会先讲部分 ...

  9. 使用JMeter做压力测试

    使用JMeter做压力测试 1.下载Jmeter 地址:http://jmeter.apache.org/download_jmeter.cgi 2.启动jmeter 运行bin/jmeter.bat ...

随机推荐

  1. SSH2框架实现注冊发短信验证码实例

    这两天開始写程序了,让用SSH2框架,曾经没有接触过Java项目更没有接触过SSH2框架,所以用注冊開始了我Java之旅.后来发现,后台代码挺easy理解的,跟.net的差点儿相同.就是层与层之间的调 ...

  2. lua学习笔记13:协程具体解释和举例

    一.coroutine.create创建协程 參数是协程的主函数,返回一个thread对象 co = coroutine.create(function() print("coroutine ...

  3. Javascript和OCX的结合历程

    这种相对古老的调用方式主要用在Windows系列平台上的多种语言软件之间的合作. 此次项目合作方式是,客户提供语音功能的OCX模块和VC++客户端软件,我需要在WEB软件中调用其中的接口开发相关功能, ...

  4. ps抠图简单方法

    选中对象后保存对象到新的图层方法.ctrl+c,ctrl+v即可 1 使用魔术棒 适用范围:图像和背景色色差明显,背景色单一,图像边界清晰. 方法意图:通过删除背景色来获取图像. 方法缺陷:对散乱的毛 ...

  5. Redis 实现队列优先级

    通常使用一个list来实现队列操作,这样有一个小限制,所以的任务统一都是先进先出,如果想优先处理某个任务就不太好处理了,这就需要让队列有优先级的概念,我们就可以优先处理高级别的任务. 实现方式: (1 ...

  6. unity, 查看内置shader源码

    1,建一个球体. 2,建一个材质,将材质拖到球体上. 3,在材质的shader下拉列表中选择想查看的内置shader,点材质栏右上设置按钮->Select Shader 进入shader面板. ...

  7. xtrabackup迁移单独一张INNODB表

  8. Effective JavaScript Item 46 优先使用数组而不是Object类型来表示有顺序的集合

    本系列作为Effective JavaScript的读书笔记. ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 可是在使用for..in循环对Objec ...

  9. angular学习笔记(五)-阶乘计算实例(2)

    <!DOCTYPE html> <html ng-app> <head> <title>2.3.3计算阶乘实例2</title> <m ...

  10. 使用codedom 编写脚本解释器

    本篇博客的目的是为了保存例子,怕自己忘记. private void dd(string code) { string path = "BonkerSpace"; if (File ...