• JMeter分布式测试


    作为一个纯 JAVA GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。

    不过,JMeter也可以像 LoadRunner 一样通过使用多台机器运行所谓的代理来分担负载产生器自身的压力,并借此来获取更大的并发用户数,我们只需手动配置一下即可。

    1、在所有期望运行JMeter作为负载产生器的机器上安装JMeter,并确定其中一台机器作为控制器,其他的机器作为代理。下面示例中我们以windows服务器为控制器,另两台linux服务器作为代理。

    然后运行所有代理机器上的JMeter-server.bat文件(linux服务器上运行Jmeter-server

    假定我们使用两台机器172.16.129.155172.16.129.43作为代理

    2、在作为Controller控制的windows机器上的操作:

    Controller控制机器的JMeter安装目录下找到 bin 目录,找到 jmeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它;

    在打开的文件中查找remote_hosts=”这个字符串,找到这样一行“remote_hosts=127.0.0.1”。其中的 127.0.0.1 表示运行JMeter代理的机器,把它修改为我们需要用到的slave代理机器的ip地址加默认端口号1099:这里需要修改为

    remote_hosts=172.16.129.155:1099,172.16.129.43:1099(两台代理服务器之间用,隔开)

    再把下面几项去掉前面的注释(#):

    server_port=1099

    client.rmi.localport=0

    server.rmi.port=1234

    server.rmi.localport=1099

    然后保存文件。

    Controller控制机器的JMeter安装目录下找到 bin 目录,再找到 jmeter.bat 这个文件,使用记事本等其他文字编辑工具打开它;

    新增set rmi_host=-Djava.rmi.server.hostname=本机ip(控制器ip

    修改

    Set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

    然后保存。

    3、在作为代理服务器linux服务器上的操作:

    修改bin目录下的jmeter-server文件,

    去掉#

    RMI_HOST_DEF=-Djava.rmi.server.hostname=172.16.129.155

    (避免了虚拟机中出现的两个ip的情况

    PS:

    代理服务器中的hostname/etc/hosts里面ip地址对应的hostname要一致

    然后保存。

    对要进行分布式测试代理机器上需要添加jmeter环境变量:

    命令 vim /etc/profile

    insert

    在文档最后,添加:

    export PATH="/jmeter/apache-jmeter-2.12/bin:$PATH"

    esc : w q

    保存,退出,然后运行:

    #source /etc/profile

    不报错则成功。

    运行env命令查看全部环境变量,看jmeter环境是否安装成功。(或者输入jmeter -v命令

    windows上相当于添加用户变量JMETER_HOMEd:\jmeter,系统变量中的path中添加d:\jmeter\bin。)

    bin目录下输入命令

    chmod 777 jmeter-server

    chmod 777 jmeter

    防止权限禁止denied

    4、确定代理服务器都可以ping到所需要测试的接口的机器,然后启用所有代理服务器上的jmeter-server

     

    如图为成功启动代理服务器上的jmeter-server

     

    启动控制器机器上的JMeter,并进入启动 ->远程启动菜单项。就会看到我们刚才添加的两个代理的地址,选中即可运行,如果想同时启动所有代理,选择远程全部启动即可。

     

    控制器上的jmeter会收到指示

    代理机上开始测试和完成测试的指示

     

      

    5、注意结果

    JMeter远程启动测试中出现结果的响应数据为空,原因是:

    分布式测试中,通过远程启动代理服务器,注重的而是高并发,默认查看结果树中的响应数据为空,只有错误信息会被报回。

    参考文档见:(比较完整得介绍了jmeter的分布式)

    http://wenku.baidu.com/link?url=Z7s4BBSfD7QuJS7vrtcAoFZo3PvtGvyr1PLKghirA5evrqATCxZQ5B7iADGd83O0DEwaQ3m9PE6xc7EyW1zX8Km4Jdd60ds_E0ZOXSQgo-q

  • 相关阅读:
    无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证]
    无责任Windows Azure SDK .NET开发入门篇一[Windows Azure开发前准备工作]
    了解ASP.NET5 Web应用程序结构
    Hello ASP.NET5
    CentOS7 防火墙 firewall-cmd
    C# 中使用WebClient 请求 https
    使用 gridfs-stream 存储文件遇到的一个坑。
    overflow的几个坑
    IIS7启用静态压缩
    创建高性能移动 web 站点【转载】
  • 原文地址:https://www.cnblogs.com/lsjdddddd/p/5716293.html
Copyright © 2020-2023  润新知