zoukankan      html  css  js  c++  java
  • Jmeter对服务器进行压力测试

    一、插件准备

    下载地址: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_TOOLSapache-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

  • 相关阅读:
    单例模式
    HashSet、LinkedHashSet、SortedSet、TreeSet
    ArrayList、LinkedList、CopyOnWriteArrayList
    HashMap、Hashtable、LinkedHashMap
    andrew ng machine learning week8 非监督学习
    andrew ng machine learning week7 支持向量机
    andrew ng machine learning week6 机器学习算法理论
    andrew ng machine learning week5 神经网络
    andrew ng machine learning week4 神经网络
    vue组件监听属性变化watch方法报[Vue warn]: Method "watch" has type "object" in the component definition. Did you reference the function correctly?
  • 原文地址:https://www.cnblogs.com/mawenqiangios/p/11608512.html
Copyright © 2011-2022 走看看