• jmeter脚本开发:分布式(六)


    一. 为什么要用分布式(集群)?

    1. jmeter做性能创建线程数,是需要消耗本地机器服务器资源的

    2. 本机机器不可能无限制创建线程数

    3. 利用别人的机器,创建线程数

    二. 分布式(集群)原理

    三. 分布式前提条件

    1. 主机和助攻机器jmeter要一致

      jmeter版本要一致

      jdk主版本要一致

      jmeter脚本中csv文件要一致(特别注意csv路径)

      jmeter的插件要一致

    2. 同一局域网,防火墙可以开放端口

    保证一致性方法:直接压缩本地jmeter包

    四. 助攻机配置

    1. 本地的jmeter打包发送到助攻机器,助攻击器可以是windows(推荐),也可以是linux

    2. 打开助攻机上的jmeter.properties,修改server_port为自定义的端口号,这里使用6798

    3. 修改server.rmi.port为6798(和server_port相同)

     

     4. 去掉SSL认证,将ssl.disable改为true

    5. 修改完启动jemter server,启动服务命令

    jmeter-server.bat -Djava.rmi.server.hostname=助攻机的ip
    

    6. 检查防火墙,关闭防火墙

    五. 主机配置

    1. 打开jmeter.properties,修改remote_hosts为 助攻机ip:端口号,刚刚我们配置的是192.168.0.102:6798,多个助攻机之间用,分隔

    2. 去掉认证:修改ssl.disable为true

    3. 确认模式:去掉mode=Standard之前的#号

    4. 重启jmeter

    检查主机和助攻机网络:telnet ip 端口

    5. 可以看到远程助攻机ip

    其实这里的助攻机1099可以不用改,碰到的问题:

    1. 启动助攻机服务时提示:

    Could not open/create prefs root node SoftwareJavaSoftPrefs at root 0x80000002

    网上搜了一下,解决方法,修改完注册表记得要重启

    1). win+R代开regedit;

    2). 找到HKEY_LOCAL_MACHINE SOFTWARE JavaSoft;

    3). 右键JavaSoft,单击右键,更改权限为完全控制便可以;

    2. 远程启动助攻机时提示:

    Connection refused to host: 192.168.0.103; nested exception is: java.net.Con...

    网上说有可能是网段不通,但我的主机和助攻机是可以ping通的,最后观察了一下,还是防火墙关闭不彻底,我只修改了域配置文件下面的防火墙状态,还要修改专用配置文件和公用配置文件下面的防火墙状态

     当你看到这样时,说明才真正关闭成功了

    六. 利用助攻机测试

    如何查看远程助攻机已经启动了呢

    1. 看助攻机服务日志,有starting字段说明已经远程启动成功了

     

    2. 看主机日志

    七. 注意

    主机发送指令给助攻机

    1. 修改主机的线程数(场景设计),直接就修改了助攻机执行情况

    2. 总线程数 = 运行的助攻机数量 * 主机场景中的线程数

    八. jmeter无图形界面模式(non-GUI)

    jmeter -n -t 脚本.jmx -l report jtl

    参数 说明
    -n non-gui-mode无图形界面模式
     -t  testplan将执行的测试计划
     -l  输出结果报告路径文件名(.jtl.csv)
     -g  输出报告文件(.csv)
     -o  输出html报告(后跟空文件夹)
     -e  生成测试报告
     -r-R  分布式指定机器ip分压运行(jmeter -n -t 脚本.jmx -r -l report.jtl)
     -j  指定执行日志路径
     -H  指定代理服务器域名或ip
     -P  指定代理服务器端口

     

     

    九. jmeter无图形界面模式(non-GUI)实操

    进入jmeter的bin目录下

    jmeter -n -t .script场景设计讲解.jmx -l report.jtl  执行脚本输出

    jmeter -n -t .script场景设计讲解.jmx -r -l report.jtl  启动所有远程服务器执行

    结果转为html报告:jmeter -g report.jtl -o dictreport  把结果转为html文件到dictreport文件夹

    一步输出html报告:jmeter -n -t .script场景设计讲解.jmx -l report.jtl -e -o dictreport

    注意:dictreport 文件夹必须为空,否则会报错

    jmeter.properities里的output_format是csv

  • 相关阅读:
    当你不知道今天星期几,不妨在编辑器写下这段代码
    自定义注解!绝对是程序员装逼的利器!!
    什么是可串行化MVCC
    Jetpack新成员,一篇文章带你玩转Hilt和依赖注入
    连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)
    从前世今生聊一聊,大厂为啥亲睐时序数据库
    工作五年,面试官说我只会CRUD!竟然只给我10K!
    bootstrap知识总结
    数据处理的两个基本问题05 零基础入门学习汇编语言42
    转移指令的原理02 零基础入门学习汇编语言44
  • 原文地址:https://www.cnblogs.com/my_captain/p/11729992.html
Copyright © 2020-2023  润新知