1.时间峰值策略

每运行一分钟启动100个用户,总运行时间为10分钟

class CustomShape(LoadTestShape):
# 设置时限
time_limit = 600
# 设置产生率
spawn_rate = 20 def tick(self):
'''
设置 tick()函数
并在tick()里面调用 get_run_time()方法
''' # 调用get_run_time()方法
run_time = self.get_run_time()
# 运行时间在 10分钟之内,则继续执行
if run_time < self.time_limit:
uesr_count = round(run_time, -2)
# 返回user_count,spawn_rate这两个参数
return (uesr_count, self.spawn_rate) return None

2.时间阶段负载策略

class MyCustomShape(LoadTestShape):
"""
ps:在不同的阶段 具有不同的用户数和 产生率的 图形形状
time -- 持续时间经过多少秒后,进入到下个阶段
users -- 总用户数
spawn_rate -- 产生率,即每秒启动/停止的用户数
"""
stages = [
{"time": 10, "users": 10, "spawn_rate": 10},
{"time": 30, "users": 30, "spawn_rate": 10},
{"time": 60, "users": 60, "spawn_rate": 10},
{"time": 200, "users": 120, "spawn_rate": 10},
]
def tick(self):
run_time = self.get_run_time()
for stage in self.stages:
if run_time < stage['time']:
tick_data = (stage['users'],stage['spawn_rate'])
return tick_data
return None

3.逐步施压负载策略

class MyCustomShape(LoadTestShape):
'''
step_time -- 逐步加载时间长度
step_load -- 用户每一步增加的量
spawn_rate -- 用户在每一步的停止/启动的多少用户数
time_limit -- 时间限制压测的执行时长
''' # 逐步负载策略每隔30秒新增启动10个用户
setp_time = 30
setp_load = 10
spawn_rate = 10
time_limit = 300 def tick(self):
run_time = self.get_run_time() if run_time > self.time_limit:
return None
current_step = math.floor(run_time /self.setp_time) +1
return(current_step * self.setp_load,self.spawn_rate)

4.双波峰负载策略

class MyCustomShape(LoadTestShape):
'''
step_time -- 逐步加载时间长度
step_load -- 用户每一步增加的量
spawn_rate -- 用户在每一步的停止/启动的多少用户数
time_limit -- 时间限制压测的执行时长
''' # 逐步负载策略每隔30秒新增启动10个用户
setp_time = 30
setp_load = 10
spawn_rate = 10
time_limit = 300 def tick(self):
run_time = self.get_run_time() if run_time > self.time_limit:
return None
current_step = math.floor(run_time /self.setp_time) +1
return(current_step * self.setp_load,self.spawn_rate)

locust自定义负载策略。的更多相关文章

  1. 【Ribbon篇四】自定义负载均衡策略(4)

    官方文档特别指出:自定义的负载均衡配置类不能放在 @componentScan 所扫描的当前包下及其子包下,否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,也就是说我们达不到特殊化定制 ...

  2. gRPC负载均衡(自定义负载均衡策略)

    前言 上篇文章介绍了如何实现gRPC负载均衡,但目前官方只提供了pick_first和round_robin两种负载均衡策略,轮询法round_robin不能满足因服务器配置不同而承担不同负载量,这篇 ...

  3. Spring-Cloud-Ribbon学习笔记(二):自定义负载均衡规则

    Ribbon自定义负载均衡策略有两种方式,一是JavaConfig,一是通过配置文件(yml或properties文件). 需求 假设我有包含A和B服务在内的多个微服务,它们均注册在一个Eureka上 ...

  4. Spring Cloud Netflix Ribbon详细介绍及自定义规则策略

    之前文章我们介绍了如何配置具有Ribbon轮询机制的负载均衡策略的消费者,这次来具体了解一下Ribbon的一些细节,以及如何自定义负载均衡策略等. 说一下Ribbon实现负载均衡的大致思路.它通过用@ ...

  5. SpringBoot-dubbo自定义负载均衡实现简单灰度

    本文介绍如何利用dubbo自定义负载实现简单灰度(用户纬度,部分用户访问一个服务,其余访问剩余服务). 其实在这之前,对dubbo了解的也不是很多,只是简单的使用过,跑了几个demo而已,但是得知接下 ...

  6. SpringCloud全家桶学习之客户端负载均衡及自定义负载均衡算法----Ribbon(三)

    一.Ribbon是什么? Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端  负载均衡的工具(这里区别于nginx的负载均衡).简单来说,Ribbon是Netf ...

  7. Ribbon源码分析(一)-- RestTemplate 以及自定义负载均衡算法

    如果只是想看ribbon的自定义负载均衡配置,请查看: https://www.cnblogs.com/yangxiaohui227/p/13186004.html 注意: 1.RestTemplat ...

  8. HttpClient_自定义cookie策略

    实际使用client的过程中,会遇到一种情况,如cookie的Key为空的,此时默认的cookie的策略处理cookie是会报错. 这时咱可以通过重写cookiestore策略来解决如: /** * ...

  9. Nginx负载均衡配置与负载策略

    原理 负载均衡的目的是为了解决单个节点压力过大,造成Web服务响应过慢,严重的情况下导致服务瘫痪,无法正常提供服务. 应用场景 春节期间在12306网站上买过火车票的朋友应该深有体会,有时查询一张火车 ...

  10. 【Kafka】自定义分区策略

    自定义分区策略 思路 Command+Option+shift+N 调出查询页面,找到producer包的Partitioner接口 Partitioner下有一个DefaultPartitioner ...

随机推荐

  1. RISC-V 平台移植 RTOS

        ARM 上移植实时操作系统大家可能比较熟悉,且例程较多,对于 RISC-V 内核的 MCU,可能相对比较陌生.下面结合 WCH 的 CH32V103 和 CH32V307 两款芯片来详细说下针 ...

  2. 12月5日内容总结——JS基础知识及变量常量、基本数据类型、运算符、流程控制、函数、内置对象

    目录 一.JS简介 简介 ECMAScript的历史 二.JS基础 1.注释语法 2.引入js的多种方式 3.结束符号 三.变量与常量 编写和运行js代码的两种方式 变量声明 四.基本数据类型 1.数 ...

  3. C# 处理实体类赋值(获取嵌套类型,支持list 自定义类型)

    public static T AESEncrypt<T>(T obj) where T : class { if (obj == null) { return obj; } var pr ...

  4. Web前端--HTML+Canvas+Js实现3D魔方小游戏

    一.案列效果 二.案例思路 1.先将平面上的6个DIV拼接在一起.形成一张类似于3d立方体图形展开的平面图. 2.我们需要将每一个面旋转到相应的位置上,每一个面的旋转轴都是不一样的.上下,左右,分别对 ...

  5. VMware虚拟机的简单安装和配置

    一.简单了解虚拟机 虚拟机英文名(Virtual Machine)是通过软件模拟的完整计算机系统.在实体计算机中能够完成的工作在虚拟机中都能够实现.在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存 ...

  6. Debug时使用热部署修改代码

    今晚Debug的时候,一些语句怎么也不能debug,F8步过以下跳好多行,看起来很烦人.原来是有些行无法进入debug断点. 是因为Debug之前Tomcat已经编译Class文件,当插入注释/修改代 ...

  7. [java安全基础 01]SQL+反序列化

    tomcat Servlet 什么是servlet Java Servlet是运行在 Web 服务器或应用服务器上的程序.它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或 ...

  8. 【KAWAKO】TVM-使用c++进行推理

    目录 前言 修改cpp_deploy.cc文件 修改DeployGraphExecutor()函数 numpy与bin文件的互相转换 numpy转bin bin转numpy 使用CMakeLists. ...

  9. 自己从零写操作系统GrapeOS——1.GrapeOS介绍

    为了学习操作系统原理我自己写了一个简单的操作系统,取名叫GrapeOS. GrapeOS是一个x86多任务桌面操作系统,但非常简单,代码只有4千行. 下面我来简单介绍一下GrapeOS的功能. 1.桌 ...

  10. CSS:linear-gradient()背景颜色渐变

    css语法 background: linear-gradient(direction,color-stop1,color-stop2,...); direction:用角度值指定渐变的方向(或角度) ...