zoukankan      html  css  js  c++  java
  • 4-8(十)Jmeter 分布式测试

    一、为什么要使用分布式

      如果需求要测试 4000 虚拟用户数,而本机只能支持1000 虚拟用户,如果测试结果有可能是电脑的问题,而不是服务器的问题,所以需要把其他虚拟用户分配到多台电脑上

      把虚拟用户数分配到其他电脑上面去执行,执行结束后,在主电脑上查看执行结果就可以

    二、什么是分布式测试

      分布式测试是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试

    三、执行原理

      对分布式测试而言,测试过程是一种对流程控制要求很高的活动,因此系统需要适时地获取全局状态以正确地指导流程;其次,在测试过程中,系统要能够方便地监视和操纵测试过程。因此,分布式测试系统适合采用集中式的分布式策略,即由一台中心计算机控制若干台受控计算机的执行,整个测试过程和资源管理由中心来完成,它掌握整个分布式测试环境的状态,从而发出控制命令

    1. 选择其中一台作为Master机(调度机),其他机器作为Slave机(执行机)
    2. 执行时,Master机会把脚本发送到每台Slave机上,Slave机拿到脚本后就开始执行,不需要启动GUI
    3. 执行完成后,Slave机会把结果回传给Master机,Master机会收集所有Slave机的信息,并汇总

    四、分布式配置

      前提条件:要保持一致性

    • Slave机器的jdk版本需要跟Master机器的 jdk 版本保持一致:java -version
    • Slave机器的Jmeter版本以及插件需要跟Master机器保持一致,操作方法是直接将Master的Jmeter安装目录打包后解压到Slave机器上
    • Slave机器的网络需要跟Master机器的网络保持在同一个局域网,可以 ping 通

    1.Master主机器配置

      在Jmeter的%JMETER_HOME%in目录下,使用文本编辑工具打开jmeter.properties配置文件,配置以下参数

    • remote_hosts=Slave机器IP:端口    多台Slave机器则用英文逗号隔开,查看IP地址ipconfig
    • server.rmi.ssl.disable=true             大约336行
    • mode=Standard  开启标准模式(可以看到日志记录)758行

      配置完成后重启Jmeter

    2.Slave助攻机器配置

      在Jmeter的%JMETER_HOME%in目录下,使用文本编辑工具打开jmeter.properties配置文件,配置以下参数

      #第263、297、334行

    • server_port=1234
    • server.rmi.port=1234
    • server.rmi.ssl.disable=true  去掉认证

      开始 > 搜索“windows防火墙” > 左侧选择“打开或关闭windows防火墙” > 选择“关闭windows防火墙(不推荐)”

      如果是linux机器上,则要给bin目录赋予执行的权限:chmod +x -R bin/,防火墙有些操作系统也需要提前关闭:systemctl stop firewalld.service

    四、连接机器

      配置完成,检查防火墙也关闭后,在Slave机器的Jmeter的%JMETER_HOME%in目录下,输入cmd进入命令行模式

      在命令行下开启Jmeter远程服务:jmeter-server.bat -Djava.rmi.server.hostname=本机IP,如果是linux机器,命令为:sh jmeter-server.sh -Djava.rmi.server.hostname=本机IP

      我们在Master主机器上,打开cmd终端命令行,使用“telnet IP 端口”的命令验证是否接通

     

       如上面显示则表示已经接通,可以开始进行分布式性能测试了

    五、执行测试

      分布式测试的场景,Master机器上只发送指令并收集测试结果,多台Slave机器执行Master机器发送的指令,并且Master机器上设定的并发用户数在每台Slave机器上执行的并发用户数保持一致,总的并发用户数=并发用户数*n(Slave机器个数)

      在Master机器上重新打开Jmeter的GUI界面,点击:运行—远程启动—Slave机器

     

      因为资源有限,只使用了一台Slave机器

     

      我们可以看到Slave机器上打印了相应的日志,则说明分布式场景配置成功:

    查看日志:

    进入服务器 Tomcat 目录下,执行cd logs/  进入,进入后执行tail -f catalina.out  查看压力测试的实时日志

      

    *******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!******* 

  • 相关阅读:
    [Swift]LeetCode1093. 大样本统计 | Statistics from a Large Sample
    [Swift]鸡尾酒排序 | Cocktail Sort
    [Swift]插入排序 | Insertion sort
    [Swift]求最大公约数和最小公倍数
    [Swift]LeetCode1087. 字母切换 | Permutation of Letters
    [Swift]LeetCode1086. 前五科的均分 | High Five
    [Swift]LeetCode1088. 易混淆数 II | Confusing Number II
    [Swift]LeetCode1090. 受标签影响的最大值 | Largest Values From Labels
    [Swift]LeetCode1091. 二进制矩阵中的最短路径 | Shortest Path in Binary Matrix
    [Swift]LeetCode1092. 最短公共超序列 | Shortest Common Supersequence
  • 原文地址:https://www.cnblogs.com/shouhu/p/12549599.html
Copyright © 2011-2022 走看看