受限于单台机器的配置问题,我们在单台机器上达不到一个很高的压测并发数,那这个时候就需要引入分布式压测

分布式压测原理:

一般通过局域网把不同测试计算机链接到一起,达到测试共享、分散操作、集中管理的目的。

  1. 选择一台作为调度机(MASTER),其他机器作为执行机(SLAVE)
  2. 执行完成执行机会把所有数据上传汇总到调度机

LOCUST

首先要确保调度机和执行机上都已经有了测试脚本

第二、cmd启动调度机locust -f <脚本名.py> --master

第三、cmd启动执行机locust -f <脚本名.py> --worker --master-host=xxx.xxx.x.x

第四、在网页运行http://localhost:8089/,locust默认8089端口,就可以让调度机操作执行机了

Jmeter

这是一款绿色软件,所以直接复制到测试机上就可使用了同时还保证了Jmeter版本是一致的(JDK版本也需要一致)

第一步配置执行机配置:

  1. 修改jmeter.properties

    • server_port=1099
    • server.rmi.localport=1099(保持和上面设置的端口号一致)
    • server.rmi.ssl.disable=true(关闭ssl)
  2. 修改jmeter-server
    • RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(本机ip)
  3. 启动执行机上bin目录下的jmeter-server(windows启动jmeter-server.bat),并记录下ip和port

第二步配置调度机的配置:

  1. 修改jmeter.properties

    • server.rmi.ssl.disable=true(关闭ssl)
    • remote_hosts=localhost:1099(与执行机配置的ip和port对应,如果存在多个用逗号隔开)

这样就完成了让调度机控制执行机

那我们为什么要这么高的并发数,或者说我们怎么去确定我们的并发数呢?

当然所有指标都可以按需求来,那需求中的并发数怎么来的呢?或者说如果没有需求指标呢?

1.稳定测试的并发量(均值)

  PV:(page view)页面访问量,也就是每打开一次页面PV计数+1

  UV:(unique visitor)唯一访问用户数,用来衡量真实的网站用户数

  一般用UV来统计用户活跃数,用PV来统计用户访问页面的频率

  举个例子:假如业务部门告知我们一天系统有4w个请求,那么我想知道需要多少的并发数

  普通计算公式(根据每天访问):TPS(并发数/每秒) = 总请求数 / 总时间,通过这个公式我们可以计算得到 TPS = 40000请求量 / (24 * 3600秒)=0.46请求数/秒,那么我们在测试环境对系统进行性能测试,只需要0.48个请求就可以满足需要

  二八原则计算方法(根据每天访问):普通计算公式可能不一定可以代表线上绝大多数情况,因为可能存在被低访问平均拉低数据,所以使用二八原则(80%请求在20%的时间完成) = 总请求数 *0.8 / 总时间*0.2,那么通过这个公式我们计算出1.85请求量/秒就可以得到并发数

  注:当然有细分数据那更好了,可以更准备知道更准确的有效时间和请求

2.压力测试的并发量(极值)

  举个例子:订单最高峰在1个小时内有7200个订单

  计算压力测试的并发数:TPS = 峰值请求数 / 峰值的时间 * 系数 ,系数根据自己对系统要求不同决定,比如系数是2,那么我们通过公式可以计算到7200 / 3600 * 2 = 4请求数/秒,4个请求数就可以满足需要 

分布式压测之locust和Jmeter的使用的更多相关文章

  1. 压力测试(八)-多节点JMeter分布式压测实战

    1.Jmeter4.0分布式压测准备工作 简介:讲解Linux服务器上jmeter进行分布式压测的相关准备工作 1.压测注意事项 the firewalls on the systems are tu ...

  2. JMeter分布式压测实战(2020年清明假期学习笔记)

    一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口 ...

  3. jmeter分布式压测

    stop.sh需要跑Jmeter的服务器上安装Jmeteryum install lrzsz 安装rz.sz命令rz jemter的压缩包 拷贝到/usr/local/tools下面unzip apa ...

  4. jmeter 分布式压测(Linux)

    之前一篇博文写的是如何在Linux上使用jmeter压测,这篇介绍下Linux上jmeter的分布式压测. 和windows上的分布式类似,需要配置agent节点和控制机 一.Agent节点配置 1. ...

  5. jmeter 分布式压测(windows)

    单台压测机通常会遇到客户端瓶颈,受制于客户机的性能.可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况. ...

  6. Jmeter 在linux下的分布式压测

    Jmeter 在linux下的分布式压测 0.将 windows机器作为master 控制机(同时也兼做负载机slave), linux机器作为 负载机 slave. 1.linux环境安装 : (1 ...

  7. JMeter在linux上分布式压测步骤(二)

    哈喽,我又来了~ 前提:三台linux虚拟机,一台作为master,另外两台作为slave. 一.server端 1.修改1099端口,client和server通信的端口,可以不修改,默认就是109 ...

  8. jmeter实现分布式压测步骤

    环境说明:安装与控制机相同版本的jdk与jmeter 1.修改控制机中的jmeter.properties文件 将<remote_hosts=127.0.0.1>改为<remote_ ...

  9. jmeter(二十七)分布式压测注意事项

    之前的博客:jemter(二十三):分布式测试简略的介绍了利用jmeter做分布式测试的方法,当时只是介绍了背景和原因,以及基本的配置操作,有同学说写得不够详细. 正好今年双十一,我司的全链路压测,也 ...

  10. jmeter之分布式压测

    很多性能大牛说一台机器的压测其实不准确,于是搜索网上的分布式压测练习了一番 目录 1.环境准备 2.控制机和压测机配置 3.执行分布式压测 1.环境准备 1.1准备一台windows作为控制机(mas ...

随机推荐

  1. C# NLog 配置

    首先用NuGet安装NLog依赖DLL NLog NLog.Config NLog.Schema NLog配置文件NLog.config: <?xml version="1.0&quo ...

  2. 在Windows上D盘上安装Docker

    Reference https://www.willh.cn/articles/2022/07/13/1657676401964.html Docker默认安装在C盘: "C:\Progra ...

  3. 通过 Homebrew 在 Mac OS X 上安装和配置 Redis

    通过使用 Homebrew,可以大大降低在 Mac OS X 上设置和配置开发环境的成本. 让我们安装 Redis. $ brew install redis 安装后,我们将看到一些有关配置注意事项的 ...

  4. AtCoder Beginner Contest 179 个人题解(C欧拉筛,D前缀和,E循环节,F线段树)

    补题链接:Here A - Plural Form 字符串,末尾有 s 的加es,不然加 s . B - Go to Jail 输入的时候判断一下是否连续相等即可 C - A x B + C (mat ...

  5. 深度学习(三)——Transforms的使用

    一.Transforms的结构及用法 导入transforms from torchvision import transforms 作用:图片输入transforms后,可以得到一些预期的变换 1. ...

  6. 简单的winform学生管理系统Demo

    界面效果 练习重点 1. 关系表的创建 2. 增删改查的操作,及sqlhelper的封装 3. 跨页面数据传递,编辑页数据提交后数据局步刷新到列表数据 项目源码 FrmStuddentList pub ...

  7. (已解决)C·lash 核心崩溃“failed to c·lash core, logs are not available”

    问题情况: 解决方案:管理员打开 cmd,输入 netsh winsock reset,重启电脑就可以了! 原经验帖:https://www.oleou.com/soft/715.html 谢谢这位大 ...

  8. Jstack 查看线程状态及定位占用 cpu 较高的 java 线程

    本文为博主原创,未经允许不得转载: 1. Jstack 用来查看 java 指定进程所包含的 java 线程状态:    "arthas-NettyHttpTelnetBootstrap-3 ...

  9. 使用QQ屏幕识图实现识别表格功能

    1.问题 目前市场上的OCR工具对于识别表格功能均是采取了收费制度,但我们时常要进行一些表格的复制(原表格为图片) 便可以使用QQ或钉钉自带的功能来实现 2.解决 1.QQ屏幕识图 先使用屏幕识图功能 ...

  10. 【Git】用法小记

    解决windows环境下的CRLF与unix环境下的LF问题,windows提交时CRLF=>LF,签出时LF=>CRLF,unix环境保留 git config --global cor ...