首页 > 其他分享 >jmeter-分布式压测

jmeter-分布式压测

时间:2022-08-18 19:12:33浏览次数:63  
标签:文件 Jmeter 压测 server jmeter properties 分布式

jmeter为什么要做分布式压测

  • 一台压力机的 Jmeter 支持的线程数受限于 Jmeter 其本身的机制和硬件配置(内存、CPU、IO等)是有限的
  • 由于 Jmeter 是 Java 应用,对 CPU 和内存的消耗较大,在需要模拟大量并发用户数时,单机很容易出现 JAVA 内存溢出的错误,导致测试脚本本身就有瓶颈

Jmeter 支持分布式压测

  • 将需要模拟的大量并发用户数分发到多台压力机,使 Jmeter 拥有更大的负载量,满足真实业务场景(高并发场景)
  • 确保压力机不会出现性能瓶颈
  • 在后面进行性能分析时,就不需要考虑压力机是否会导致性能瓶颈的主要原因之一

jmeter分布式原理

  • Cnotroller 是控制机,Slaves 是多个压力机
  • 分布式测试中,Cnotroller 通过命令行将测试脚本分发给所有 Slave
  • Slave 不需要启动 Jmeter GUI,通过 CLI 模式执行测试
  • Slave 执行完后,会把结果回传给 Master
  • Master 收集所有 Slave 的结果并汇总成一个结果集

Slave压力机配置

  1. jmeter目录下的bin目录中,打开jmeter.properties文件,修改server.rmi.ssl.disable=false,改为true,并去掉注释
  2. jmeter目录下的bin目录中,打开system.properties文件,最后一行添加java.rmi.server.hostname=本机ip

Controller控制机配置

  1. jmeter目录下的bin目录中,打开jmeter.properties文件,修改server.rmi.ssl.disable=false,改为true,并去掉注释
  2. 打开Contorller机下jmeter安装文件下的bin目录:jmeter.properties文件,搜索remote_hosts=127.0.0.1,将Slave机的IP写在后面,多个ip用逗号隔开

执行分布式

  1. 先执行slave机, ./jmeter-server或jmeter-server.bat
  2. Controller机,执行./jmeter.sh或jmeter.bat
  3. 也可以命令启动
    jmeter -n -t test.jmx -R 192.168.1.100,192.168.1.101 -l test.jtl
    jmeter命令行常用参数
    -n 命令行模式
    -t 指定jmx脚本地址(地址可以是相对路径,可以是绝对路径)
    -h 查看帮助
    -v 查看版本
    -p 指定读取jmeter属性文件,比如jmeter.properties文件中设置的
    -l 记录测试结果的文件,通常结果文件为jtl格式(文件可以是相对路径,可以是绝对路径)
    -s 以服务器方式运行(也是远程方式,启动Agent)
    -H 设置代理,一般填写代理IP
    -P 设置代理端口
    -u 代理账号
    -a 代理口令
    -J 定义jmeter属性,等同于在jmeter.properties中进行设置
    -G 定义jmeter全局属性,等同于在Global.properties中进行设置,线程间可以共享)
    -D 定义系统属性,等同于在system.properties中进行设置
    -S 加载系统属性文件,可以通过此参数指定加载一个系统属性文件,此文件可以用户自己定义
    -L 定义jmeter日志级别,如debug、info、error等
    -j 制定执行日志路径。(参数为日志路径,不存在不会自动创建,将日志输出到命行控制台)
    -r 开启远程负载机,远程机器列表在jmeter.properties中指定
    -R 开启远程负载机,可以指定负载机IP,会覆盖jmeter.properties中remote_hosts的设置
    -d 指定Jmeter Home目录
    -X 停止远程执行
    -g 指定测试结果文件路径,仅用于生成测试报表,参数是csv结果文件
    -e 设置测试完成后生成测试报表
    -o 指定测试报告生成文件夹(文件夹必须存在且为空文件夹)

常见错误

  1. 报错 permission denied

    解决办法:修改整个 jmeter 目录权限 Chmod -R 755 apache-jmete根目录
  2. connection refused

    解决办法:
    1.查看防火墙是否关闭
    注:centos7 上关闭防火墙:
    firewall-cmd --state //查看防火墙状态
    systemctl stop firewalld.service //关闭防火墙
    并重新启动 jmeter-server

标签:文件,Jmeter,压测,server,jmeter,properties,分布式
From: https://www.cnblogs.com/xxiaow/p/16599804.html

相关文章

  • jmeter接口自动化实战--新增店员
    一、目标使用jmeter通过接口实现新增店员功能二、步骤及思想1、登录。  首先需要登录app2、进入新增店员页面。  进入app后调用任何接口需要有token,所以要提取......
  • postman 信息头用户名密码如何在jmeter中实现
    场景:需要测试一个登录场景,postman中是basicauthor,如何在jmeter中实现?  方法一:jmeter配置元件中有"HTTP授权管理器",选择对应的组件   方法二:提前对用户名密......
  • Jmeter-变量的嵌套使用
    场景:有存在获取到多个登录账号,循环获取单个变量的情况。常用方法:${__BeanShell(vars.get("变量字段_${变量字段}"))}取值示例:   思维扩展:一:jmete......
  • jmeter导出报告步骤
    第一步:执行完脚本,有聚合报告第二步:新建一个文件夹,再建一个后缀为.jtl的文件。在聚合报告页面,选择刚建的文件夹进行保存   第三步:选择工具-GenerateHTMLreport ......
  • 【谷粒商城】(二)SpringCloudAlibaba分布式组件
    微服务分布式组件注册中心:每一个微服务上线都应该注册到注册中心。这样做的好处在于方便微服务之间的相互调用,比如订单服务想要调用商品服务,就可以通过注册中心查看有哪......
  • 12、jmeter--吞吐量控制器
    吞吐量控制器(ThroughputController)用来控制其下元件的执行次数,并无控制吞吐量的功能。作用:控制其下的子节点的执行次数与负载比例分配吞吐量控制器字段介绍:To......
  • Redis-5.0141 分布式锁-18
    1.问题描述   随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程的特点以及分布在不同机器上,这将使原单机部署情况下的并发控制......
  • 11.jmeter实现跨线程调用token值
    1.请求登录接口提取token值,确保token值提取成功,可以添加调试取样器在请求中,查看结果树是否提取成功   2.设置token为全局变量线程组-添加-BeanShell取样器,输入脚本......
  • system desing 系统设计(三): 分布式文件系统distributed file system设计原理
    1、众所周知,数据要想永久保存,肯定是要放磁盘的啦!磁盘和内存不一样,内存最小的存储单位是byte,1byte=8bit;但是磁盘不一样了,最小存储单位是sector,1sector=512byte......
  • 分布式爬虫
    分布式爬虫一.增量式爬虫​ 增量式爬虫,顾名思义.可以对网站进行反复抓取.然后发现新东西了就保存起来.遇到了以前抓取过的内容就自动过滤掉即可.其核心思想就两......