zoukankan      html  css  js  c++  java
  • Jmeter分布式 (三)

    一、什么是分布式测试

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

    二、为什么分布式执行?

      在工作中使用jmeter高并发压力测试的场景下,单机受限内存、CPU、网络IO,会出现被测服务器压力还没有上去,但是执行机已经由于模拟的压力太大死机了。为了提供更强大的负载能力,使用分布式压测,部署在不同的服务器上,解决高并发的问题!

    三、分布式压测原理:

    (1)选择其中一台作为Master机(调度机),其他机器作为Slave机(执行机)

    (2)执行时,Master机会把脚本发送到每台Slave机上,Slave机拿到脚本后就开始执行,不需要启动GU

    (3)执行完成后,Slave机会把结果回传给Master机,Master机会收集所有Slave机的信息,并汇总

     

    比如我在jmeter Master端配置线程数为10,循环次数为100,也就是会对测试服务器发起1000次请求,我有3台Slave机,如果我在Master端选择远程启动压力测试,那么每台Slave都会对测试服务器发起10*100次请求,那么这次压力测试产生的请求就是10*100*3=3000次。

    四、分布式配置

    (1)前提条件:

    Slave机器的jdk版本需要跟Master机器的jdk版本保持一致

    Slave机器的Jmeter版本以及插件需要跟Master机器保持一致,操作方法是直接将Master的Jmeter安装目录打包后解压到Slave机器上

    Slave机器的网络需要跟Master机器的网络保持在同一个局域网,可以ping通

    (2)Master机器配置

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

    remote_hosts=Slave机器IP:端口 #多台Slave机器则用英文逗号隔开)

    例如:

    remote_hosts=192.168.xx.10:1097,192.168.xx.20:1098

    server.rmi.ssl.disable=true

    mode=Standard  #开启标准模式(可以看到日志记录)

    (3)Slave机器配置

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

    server_port=1097

    server.rmi.port=1097

    server.rmi.ssl.disable=true #去掉认证

    (4)启动连接

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

    在Slave命令行下开启Jmeter远程服务:jmeter-server.bat -Djava.rmi.server.hostname=本机IP,

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

    五、gui分布式压测执行

      在Master机器上重新打开Jmeter的GUI界面,点击:运行—远程启动—单台Slave机或者点击"远程启动所有Slave机"!

     Slave机器上打印相应的日志,分布式场景执行成功!

    在Master机器上查看执行情况及聚合报告

    六、no-gui分布式压测执行

    -r  #启动远程服务器(在remote_hosts中定义)

    jmeter -n -r -t 分类页.jmx -l ./jtl/result.jtl -e -o ./reports

    -R, #启动这些远程服务器(覆盖remote_hosts)

    jmeter -n -R 192.168.xx.xx:1098 -t 线程组.jmx -l ./jtl/result.jtl -e -o ./reports

    输出./jtl/result.jtl文件

     输出./reports测试报告

    #仅执行生成jtl结果

    jmeter -n -R 192.168.xx.xx:1098 -t 线程组.jmx -l ./jtl/result.jtl

    #根据jtl文件生成html报告

    jmeter -g ./jtl/result.jtl -o ./reports

    不足之处,请指教,待补充!

  • 相关阅读:
    java代码连接数据库编码实现
    ffmpeg工具的使用
    java的jar包服务实现开机启动
    mongodb的联合查询
    java8 stream多字段排序
    springboot调用webservice接口的两种方式,不使用axis
    使用highlight.js高亮你的代码
    使用弹性布局来解决令人烦恼的垂直居中问题~~
    使用less函数实现不同背景的CSS样式
    使用GitBook编写文档
  • 原文地址:https://www.cnblogs.com/xiaozhaoboke/p/13846447.html
Copyright © 2011-2022 走看看