zoukankan      html  css  js  c++  java
  • Jmeter(四十四)

    1.简介

      这篇文章其实很简单,就是为下一篇文章做一个铺垫,所以宏哥给小伙伴或童鞋们提前热身一下。

    2.什么是远程运行?

      远程执行,就是脚本放在本地,执行却在另一台电脑上执行,当然,可以是远程多台电脑一起执行。最常见的场景就是,跑性能测试的时候,一台电脑负载不起需要的线程时,就需要两台或者更多的电脑来启动线程跑测试,线程就相当于是虚拟用户。在网上,通常会说,超过1000个线程时,就不要使用一台电脑跑了,而是选择使用多台电脑一起负载。这个说法并不全对,比如,脚本就写一条insert语句,往数据库中插入数据,启20个线程跑,估计你的电脑CPU使用率就要100%了。所以,最终还是要看电脑承受得住否,而不是看多少个线程,不同的测试脚本,对测试机的压力不一样。很多时候,做性能测试的时候,为了模拟真实的用户操作,都会加等待时间。比如用户登录功能,用户在输入用户名和密码的时候,这个时候,服务器就是在等待,所以脚本在这里就会加一个等待时间。

    3.为什么要远程运行?

    Jmeter 是Java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。其实,Jmeter的远程启动可以帮助我们解决此问题,通过单个 jmeter 客户端控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试。

    4.环境

    宏哥的本地环境,如下:

    Jmeter版本:5.1.1,如下图所示:

    系统:Windows 10版本 64位系统(32位的同学自己想办法哦),如下图所示:

    宏哥的远程环境,如下:

    Jmeter版本:5.1.1,如下图所示:

    系统:Windows 10版本 64位系统(32位的同学自己想办法哦),如下图所示:

    5.安装jmeter

    分别在本地和远程机器上安装jmeter,这里宏哥就不做详细介绍了,不知道的同学可以参考宏哥的这篇安装文章:https://www.cnblogs.com/du-hong/p/12894560.html

    6.配置

    本地机器:Jmeter安装路径的bin下,编辑jmeter.properties文件,追加如下内容:

    # Jmeter远程启动:Controller机配置,格式为:“IP1:port1,IP2:port2”,如下只配置了一台Agent;

    remote_hosts=*.*.*.95:1029    

    远程机器:Jmeter安装路径的bin下,编辑jmeter.properties文件,追加如下内容:

    # Jmeter远程启动:Agent机配置

    server_port=1029

    server.rmi.localport=1029

    备注:若出现端口被占用,Windows上在dos框输入“netstat -ano”,查看端口使用情况,这里推荐使用新的端口;

    7.脚本文件

    宏哥为了演示,简单的录制了一个访问度娘的脚本文件,如下图所示:

    8.启动

    ①本地机器:“运行”→“远程启动”,可以看到宏哥配置的远程机器的IP及端口,如下所示,选择这台机器;

     

    ②远程机器:

    Jmeter安装在Windows平台上:cmd到dos中,进入Jmeter安装路径的bin目录下,执行“jmeter-server”

    ③查看本地结果树,如下图:

    ④查看远程cmd到dos中,进入Jmeter安装路径的bin目录下,执行“jmeter-server”的窗口,如下图所示:

    至此,远程启动执行完毕。

    9.小结

    1、jmeter安装在Linux平台上:进入Jmeter安装路径的bin目录下,执行“./jmeter-server”;

    否则会报如下错误:“Java.net.ConnectionException: Connection refused:connect”

    2、同理如果Jmeter安装在Linux平台上:进入Jmeter安装路径的bin目录下,执行“./jmeter-server”;

    否则会报如下错误:“Java.net.ConnectionException: Connection refused:connect”

       

     3、Jmeter5.2.1,启动报错java.io.FileNotFoundException: rmi_keystore.jks

    • 解决方法一:slave的jmeter.properties中,设置server.rmi.ssl.disable=true
      原因:jmeter4.0以上的版本,默认启用RMI连接的安全通信,需要创建密钥库。所以将SSL禁用即可。

    • 解决方法二:手动生成秘钥和证书。执行create-rmi-keystore.bat(Windows适用)或create-rmi-keystore.sh(Linux适用)



        感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
        如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的将是我最大的写作动力!另外您也可以选择关注我,可以很方便找到我!
        本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
    个人微信公众号 个人微信
  • 相关阅读:
    kettle表输入条件参数设置
    batの磕磕碰碰
    bat调用kettle的job文件
    数组转换成字符串输出
    bat调用带参数存储过程
    读取属性文件
    剑指Offer——删除链表中重复的结点
    剑指Offer——链表中环的入口节点
    剑指Offer——两个链表的第一个公共节点
    剑指Offer——表示数值的字符串
  • 原文地址:https://www.cnblogs.com/du-hong/p/14779616.html
Copyright © 2011-2022 走看看