jmeter简单性能压测和分布式负载

不想你离开。 提交于 2020-12-16 16:07:28

  现在流行的性能测试工具有大家熟知的LR,还有一个就是越来越火的jmeter,因为它是免费开源的,不像LR那样要想进行商业化压测使用必须花大钱购买使用权限。另外一个是他可以在官方网站下载动态库拓展很多的功能。下面来简单说下jmeter进行压测以及用jmeter进行分布式负载。

  一、jmeter进行压测

   (1)、首先打开jmeter制作一个简单的脚本,本次就是以压测访问百度为例。

  制作脚本的时候注意设置参数化、设置检查点,有需要关联的还要设置关联,本次压测百度就只是一个访问百度首页的请求,在此不需要进行参数化和关联,但是要设置响应断言做检查点。因为在压测的时候必须保证请求业务的正确性,所以在这里设置响应断言判断请求访问百度的业务是否成功。断言内容就是百度的标题“百度一下,你就知道”。制作完脚本后先运行脚本,看脚本有无问题再继续进行后续压测。

  (2)、设置压测场景

  (3)、压测结果分析:

  首先要知道jmeter是java写的,jvm虚拟机内存大小是一定的,不要开太多无关的插件,因为打开的插件越多,生成的对象就会越多,生成的对象越多占用jvm的堆内存和非堆内存空间就越多,就会导致gc和full gc的频次,影响jmeter本省压测机服务器的性能,在压测时建议就把使用聚合报告就可以了,你可以看到tps和平均响应时间这两个性能最关注的点。

 

 二、jmeter的no-gui压测及分布式负载

  有些时候可能windows压测机数量不够用,就需要使用linux作为jmeter来进行压测,或者使用linux服务器来做分布式负载压测机来使用。

  1、jmeter的no-gui压测:

    (1)、首先在windows主控机制作好压测的脚本XXX.jmx;

    (2)、把脚本上传至jmeter安装包中,就上传至jmeter压缩包的bin目录下;

    (3)、执行命令运行脚本,并生成.jtl的压测结果文件。具体命令是  jmeter -n -t XXX.jmx -l  aaa.jtl,这里参数中-n  是指no-gui模式,-t  是指名压测的脚本, -l 是指明生成的文件名;

    (4)、结果分析,就是把生成的aaa.jtl文件从linux服务器上拷贝出来,然后打开windows中的jmeter,选择自己想要打开的方式去查看结果,比如想看聚合报告,就打开聚合报告插件,并选择拷贝出来的压测结果文件打开查看;

  2、jmeter的分布式负载:

    (1)、在主控机制作压测脚本,有需要使用参数化的就先用txt文本准备好参数化文件;

    (2)、如果想修改连接jmeter的端口号,就修改jmeter/bin目录下的jmeter.properties配置文件,找到#server_port=1099,这里是设置连接负载机的默认端口。如果不改的话连接端口就是默认的1099,要想修改配置文件就先把注释去掉,然后在设置自己想要的端口;

    (3)、启动负载机的jmeter-server服务,jmeter-server  -Djava.rmi.server.hostname=192.168.1.110 这里是运行负载机的ip。

    (4)、修改主控机windows客户端配置文件(jmeter.properties)添加负载机的ip,在remote_hosts=127.0.0.1,192.168.1.244:1099,这里就是添加的linux负载机服务端的ip和端口号
    (5)、放置参数化文件时,是windows系统做负载机,就与主控机的放参数化文件一样的路径;要是linux操作系统做负载机,可以在脚本中设置一个用户变量,定义用户变量的结果是参数化文件在linux服务器的绝对路径,然后在主控机设置参数化文件位置时就填写这个变量。
    (6)、启动全部的负载机,一个是运行->远程全部启动;另一个是点击快捷键栏中的两个三角的启动按钮。
    (7)、按默认设置jmeter的参数运行线程数多时,可能引起jvm的内存溢出,这里就需要修改jmeter的jvm虚拟机内存参数,修改参数如下:
        打开jmeter安装目录/bin/jmeter;
          修改默认堆内存大小    
          #默认的 HEAP="-Xms512m -Xmx512m" , #修改后 HEAP="-Xms1024m -Xmx1024m"
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!