zoukankan      html  css  js  c++  java
  • Jmeter(一)分布式性能测试

    背景

    因工作需要,最近在学习Jmeter工具,网上有很多比较全面的Jmeter入门指南,我是看老张的博客入门的,博客风格简洁明了,看完受益匪浅,会跟老张好好学习。

    (老张博客传送门:https://www.cnblogs.com/imyalost/p/5790268.html)

    因为很多基础内容老张的博客都有些,我就不复制粘贴了,就写写我自己在实践中踩过的坑。

    一、Jmeter分布式测试的使用背景

    一般配置下,jmeter支持并发数大概在300-500,再大的话,可能出现线程排队和阻塞,即非并发情况,甚至造成卡顿、无响应等情况,当需要模拟大量的并发请求,单台jmeter就无法满足,可以通过分布式测试,即将并发请求分配给多台jmeter,来满足这种大规模的并发请求需求。

    二、Jmeter分布式测试原理

    引用老张的话:

    1、分布式测试中,选择一台作为管理机(Contorller),其他的机器作为测试执行的代理机(Agent);

    2、执行测试时,由Contorller通过命令行将测试脚本发给Agent,然后Agent执行测试(不需要启动GUI),同时将测试结果发送给Contorller;

    3、测试完成,可以在Contorller上的监听器里面看到Agent发来的测试结果,结果为多个Agent测试结果汇总而成;

    三、Jmeter分布式测试步骤

    1、假设三台电脑IP为192.168.10.1、192.168.10.2、192.168.10.3,将192.168.10.1作为管理机(Contorller),其他两台作为代理机(Agent)

    2、给三台电脑配置相同版本的JDK和Jmeter,JDK的安装教程可以自己搜索,Jmeter下载好之后直接解压到想要的路径下,一般是不需要配置JMETER_HOME环境变量的。

    3、修改Contorller的Jmeter.properties文件,修改“remote_hosts=127.0.0.1”,如果Contorller仅收集数据,不执行测试计划,则修改为:remote_hosts=10.82.25.28:1099,10.82.25.30:1099

    如果Contorller也要执行测试计划,则修改为:remote_hosts=127.0.0.1,10.82.25.28:1099,10.82.25.30:1099

    4、修改三台电脑的Jmeter.properties文件,修改“server.rmi.ssl.disable”,将其值改为true,即server.rmi.ssl.disable=true(记得要去掉#号这个语句才能生效)关闭ssl功能

    5、在两台Agent机各自启动:jmeter-server.bat,正常启动会在命令窗口显示  “Found ApacheJMeter_core.jar   Createred remote object:。。。”  等信息

    6、在Contorller机启动:jmeter.bat,打开测试计划(Test Plan),点击“运行(Run)-远程启动(Remote start)”,可以选择启动某个机,也可以启动全部

    7、已启动的机会在命令窗口打印出    “Starting the test on host。。。”   等信息

    四、配置过程中遇到的问题

    1、Agent机启动:jmeter-server.bat,显示“could not find ApacheJMeter_core.ja”

    方案:其实后面又显示“Found ApacheJMeter_core.jar”  = 。=   所以其实是没有问题的,如果还是想要一开始就显示“Found ApacheJMeter_core.jar”,那么就配置JMETER_HOME:

    新建环境变量,比如我的:JMETER_HOME=C:\Users\Administrator\Desktop\apache-jmeter-4.0  (即jmeter根目录),然后编辑Path变量,在后面添加  %JMETER_HOME%\bin  记得与前面的路劲要用分号:隔开

    2、Agent机启动:jmeter-server.bat,显示“java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定文件)”

    方案:修改“server.rmi.ssl.disable”,将其值改为true(一开始配置的时候我没有修改这个所以报错了)

    3、Controller机远程启动Agent机报错:Conne refused host:

    方案:这个出错的可能性很多,可以检查一下防火墙有没有关掉(需要关掉防火墙),检查端口有没有被占用:tasklist | findstr "1099",检查电脑是否存在多网卡。

    我这里出错的原因是Controller机没有修改“server.rmi.ssl.disable”为true

  • 相关阅读:
    「NOI2017」蔬菜 解题报告
    线性代数
    idea创建maven的web工程
    logback和slf4j的使用之logger使用
    英雄之言 罗隐
    论英雄
    英雄--偶得佳文不知出处
    日志
    延迟加载线程安全的单例--最佳方式,通过内部类
    linux下安装jdk8
  • 原文地址:https://www.cnblogs.com/cyanlee/p/9773473.html
Copyright © 2011-2022 走看看