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)

最新文章

  1. 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验
  2. netfx_NativeCompilation.msi 传说中的 .NET Native 预览版的文件列表
  3. [vijos1982][NOIP2015]子串
  4. java中&quot;与&quot;和&quot;或&quot;
  5. undefined symbol libiconv_open 完全解决方案
  6. mysql 优化之注意
  7. mysql学习笔记3
  8. PHP 发布两个不用递归的树形数组构造函数(转)
  9. 横瓜先生如何用MDB和XLS等低性能数据库来处理千亿级数据量。
  10. 谈谈一些有趣的CSS题目(十五)-- 谈谈 CSS 关键字 initial、inherit 和 unset
  11. Mysql之数据类型(胖胖老师)
  12. cocos 资源工作流程
  13. 多线程——multiprocess
  14. python 类的属性__slots__ (了解一点点)
  15. 关于ios 11 的问题
  16. C# 循环语句 for
  17. Java NIO -- 通道 Channel
  18. JVM总结-Java 虚拟机是怎么识别目标方法(上)
  19. 【总结】STL--map
  20. ubuntu16.04(64位)建立交叉编译环境,并配置编译内核

热门文章

  1. KingbaseES libstdc++.so.6/ version &#39;CXXABI_1.3.8&#39;问题处理
  2. C#DataTable(转List /JSON/字典 互转)
  3. git02 IDEA使用git
  4. 多功能游戏工具箱 - Watt Toolkit V4.4
  5. Android面试-字节一面
  6. E - 树状数组 1【GDUT_22级寒假训练专题五】
  7. 安装kali2021.1系统
  8. 原生微信小程序的一些注意点
  9. JZOJ 3469. 【NOIP2013模拟联考7】数列(sequence)
  10. 图论之最短路径Dijkstra算法