zoukankan      html  css  js  c++  java
  • 【转】Jmeter分布式压力测试

    安装

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

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

    下载后解压:

     tar -xvzf apache-jmeter-3.1.tgz

    Jmeter参数

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. -h, --help  
    2.   
    3.                 print usage information and exit  
    4.   
    5. #打印帮助信息   
    6.   
    7.         -v, --version  
    8.   
    9.                 print the version information and exit  
    10.   
    11.           #打印版本信息  
    12.   
    13.         -p, --propfile {argument}  
    14.   
    15.                 the jmeter property file to use  
    16.   
    17.           #运行时指定property文件,默认是使用JMETER_HOME/bin目录下的jmeter.properties,如果用户自定义有其它的配置,在这里加上  
    18.   
    19.           #用法如下: -p user.properties  
    20.   
    21.         -q, --addprop {argument}  
    22.   
    23.                 additional property file(s)  
    24.   
    25.           #其它配置文件,如JVM参数等等  
    26.   
    27.         -t, --testfile {argument}  
    28.   
    29.                 the jmeter test(.jmx) file to run  
    30.   
    31.           #要运行的jmeter脚本  
    32.   
    33.         -j, --jmeterlogfile {argument}  
    34.   
    35.                 the jmeter log file  
    36.   
    37.           #指定记录jmeter log的文件,默认为jmeter.log  
    38.   
    39.         -l, --logfile {argument}  
    40.   
    41.                 the file to log samples to  
    42.   
    43.           #记录采样器Log的文件  
    44.   
    45.         -n, --nongui  
    46.   
    47.                 run JMeter in nongui mode  
    48.   
    49.           #以nongui模式运行jmeter  
    50.   
    51.         -s, --server  
    52.   
    53.                 run the JMeter server  
    54.   
    55.           #运行JMeter server  
    56.   
    57.         -H, --proxyHost {argument}  
    58.   
    59.                 Set a proxy server for JMeter to use  
    60.   
    61.           #代理服务器地址  
    62.   
    63.         -P, --proxyPort {argument}  
    64.   
    65.                 Set proxy server port for JMeter to use  
    66.   
    67.           #代理服务器端口  
    68.   
    69.         -u, --username {argument}  
    70.   
    71.                 Set username for proxy server that JMeter is to use  
    72.   
    73.           #代理服务器的用户名  
    74.   
    75.         -a, --password {argument}  
    76.   
    77.                 Set password for proxy server that JMeter is to use  
    78.   
    79.           #代理服务器用户名对应的密码  
    80.   
    81.         -J, --jmeterproperty {argument}={value}  
    82.   
    83.                 Define additional JMeter properties  
    84.   
    85.           #定义额外的Jmeter属性  
    86.   
    87.         -G, --globalproperty (argument)[=(value)]  
    88.   
    89.                 Define Global properties (sent to servers)  
    90.   
    91.                 e.g. -Gport=123  
    92.   
    93.                  or -Gglobal.properties  
    94.   
    95.           #定义发送给server的全局属性  
    96.   
    97.          #如:-Gport=123 或者-Gglobal.properties(指定监听server的端口)  
    98.   
    99.         -D, --systemproperty {argument}={value}  
    100.   
    101.                 Define additional System properties  
    102.   
    103.           #定义系统属性  
    104.   
    105.         -S, --systemPropertyFile {filename}  
    106.   
    107.                 a property file to be added as System properties  
    108.   
    109. #通过指定的property文件定义系统属性  
    110.   
    111.         -L, --loglevel {argument}={value}  
    112.   
    113.                 Define loglevel: [category=]level   
    114.   
    115.                 e.g. jorphan=INFO or jmeter.util=DEBUG  
    116.   
    117.           #定义日志等级  
    118.   
    119.         -r, --runremote (non-GUI only)  
    120.   
    121.                 Start remote servers (as defined by the jmeter property remote_hosts)  
    122.   
    123.           #启动远程server(在jmeter property中定义好的remote_hosts),公在non-gui模式下此参数才生效  
    124.   
    125.         -R, --remotestart  server1,... (non-GUI only)  
    126.   
    127.                 Start these remote servers (overrides remote_hosts)  
    128.   
    129.           #启动远程server(如果使用此参数,将会忽略jmeter property中定义的remote_hosts)  
    130.   
    131.         -d, --homedir {argument}  
    132.   
    133.                 the jmeter home directory to use  
    134.   
    135.                 #Jmeter运行的主目录  
    136.   
    137.         -X, --remoteexit  
    138.   
    139.                 Exit the remote servers at end of test (non-GUI)  
    140.   
    141.           #测试结束时,退出(在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个线程,这样可能跟你的预期有所差别

     

  • 相关阅读:
    文件操作工具类
    批量插入数据到 MySQL的几种方式
    C#队列学习笔记:RabbitMQ使用多线程提高消费吞吐率
    C#队列学习笔记:RabbitMQ延迟队列
    C#队列学习笔记:RabbitMQ优先级队列
    C#队列学习笔记:RabbitMQ实现客户端相互通讯
    C#队列学习笔记:RabbitMQ搭建集群
    C#队列学习笔记:RabbitMQ安装及使用
    C#队列学习笔记:RabbitMQ基础知识
    C#队列学习笔记:MSMQ入门二
  • 原文地址:https://www.cnblogs.com/yanghj010/p/6216972.html
Copyright © 2011-2022 走看看