首页 > 其他分享 >Locust如何实现负载测试?

Locust如何实现负载测试?

时间:2024-03-20 11:58:28浏览次数:20  
标签:__ 10 负载 run 启动 self Locust 测试 time

一、场景要求

我们在使用locust时,有时候默认的场景无法满足我们的要求时,这时后我们需要自定义场景 比如我们要设置每一段时间启动10个用户运行,执行60s后再一次启动10个用户,总共运行10分钟,默认的场景是无法满足这样的要求的,我们可以使用LoadTestshape类,LoadTestshape类提供了几种负载测试策略

二、用法

在脚本文件中定义一个类继承LoadTestshape类,locust在启动时发现文件中有使用这个类会自动启动。
在该类中需要定义tick()方法,该方法返回用户数以及产生率的元组(如果没有返回这两个测试将停止),locust启动后每秒调用一次该函数。
在LoadTestshape类中可以使用get_run_time()方法来获取测试运行的时间,使用此方法可以用来控制压测的总时间。  

三、基于时间峰值策略

需求:比如我们要设置每一段时间启动10个用户运行,过一段时间后再一次启动10个用户,持续加压 60s

四、代码实现

import os
from locust import *


'''实现目标:每隔一段时间增加十个用户,实现持续加压'''


class CustomTaskSet(LoadTestShape):
# 设置压测时间60s
time_limit=60
#设置启动/停止的用户数
spawn_rate=10
def tick(self):
"""
返回一个元组,包含两值:
user_count -- 总用户数
spawn_rate -- 每秒启动/停止用户数
返回None时,停止负载测试
"""
#获取压测时间
run_time=self.get_run_time()
if run_time<self.time_limit:
#每隔一段时间启动10个用户;为-1时,表示将个位变为0,逢5进一
user_count=round(run_time,-1)
print(f'当前用户数{user_count},当前时间{run_time}')
return user_count,self.spawn_rate

return None

class IncrementalPressureMeasurement(HttpUser):
wait_time =between(1,2)
host="http://localhost:8080"
def on_start(self):

print("负载加压开始")

def on_stop(self):
print("负载加压结束")

@task
def increment_pressure(self):
self.client.post('/measurement',data={'measurement':''})


if __name__ == '__main__':
file_path = os.path.abspath(__file__)
os.system(f'locust -f {file_path} --web-host=127.0.0.1')
五、实现效果
最后我们欣赏下劳动成果吧,haha!

 

 

最后,还请大家可以点个免费的赞,你们的点赞才是我更新的动力!

 

 

 

 

标签:__,10,负载,run,启动,self,Locust,测试,time
From: https://www.cnblogs.com/yongheng999/p/18084901

相关文章

  • 九连冠!禅道再获2023年「常用测试管理工具」第一名
    近期,软件测试网(51Testing)发布了2023年第17届《2023软件测试行业现状调查报告》。 报告数据显示,禅道项目管理软件凭借41.5%的企业使用占比,以压倒性的优势稳居「2023公司常用测试管理工具」榜首。与2022年禅道36.5%的企业使用率相比,2023年禅道的使用率同比增长了5%,呈逐年上升趋势......
  • 基于神兔分仓系统的穿透测试流程
    基本信息账户中心地址http://192.168.8.60:30162/center登陆账户信息test654321华泰柜台账户10001437datong888(每次测试配置不同的APPID和AUTHCODE)交易测试下单地址http://192.168.8.60:30722/#/login登陆账号信息10001437datong888服务器IP192.168.1......
  • 快速上手App自动化测试利器,Toast原理解析及操作实例
    简介Toast是一种轻量级的消息提示,常常以小弹框的形式出现,一般出现1到2秒会自动消失,可以出现在屏幕上中下任意位置。Toast具有如下的特点:无法被点击,不同于Dialog,永远不会获得焦点。Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失是系统级别的控件,属于......
  • 每日测试思维培养—— PC端安装卸载软件,怎么测试,如何设计测试用例?
    每日测试思维培养——PC端安装卸载软件,怎么测试,如何设计测试用例?在app测试中用的多,使用fiddler抓取数据检查结果,定位问题,测试安全,制造弱网环境 前置条件:有安装文件————安装测试————①老版本存在老版本但————没打开,是否覆盖存在老版本且 ————正在使用,是......
  • 在Linux中,如何配置负载均衡器以分配网络流量?
    在Linux中配置负载均衡器以分配网络流量是一个复杂但重要的任务,它涉及到多个组件和步骤。下面将详细介绍配置负载均衡器的一般过程:一、选择负载均衡软件首先,你需要选择一个负载均衡软件。在Linux中,常用的负载均衡软件有HAProxy、Nginx和LVS(LinuxVirtualServer)等。这些软件都可......
  • 软件体系架构课堂测试-矩阵
    软件体系架构课堂测试–架构分析阅读下列案例,回答相关问题:某大银行的一位银行卡办公室的收账经理Liz遇到了一个问题。她每周都收到一份过期未付款的账户名单。这份报告已经从两年前的250个账户增加到现在的1250个账户。为了确定那些严重拖欠债务的账户,Liz需要通读这份报告。严......
  • 软件体系架构课堂测试–架构分析
    软件体系架构课堂测试–架构分析 阅读下列案例,回答相关问题:某大银行的一位银行卡办公室的收账经理Liz遇到了一个问题。她每周都收到一份过期未付款的账户名单。这份报告已经从两年前的250个账户增加到现在的1250个账户。为了确定那些严重拖欠债务的账户,Liz需要通读这份报告。......
  • 软件体系架构课堂测试–架构分析
    软件体系架构课堂测试–架构分析 阅读下列案例,回答相关问题:某大银行的一位银行卡办公室的收账经理Liz遇到了一个问题。她每周都收到一份过期未付款的账户名单。这份报告已经从两年前的250个账户增加到现在的1250个账户。为了确定那些严重拖欠债务的账户,Liz需要通读这份报告。......
  • Lvs+keepalived+nginx搭建高可用负载均衡集群
    环境配置master主机192.168.199.149,虚拟IP192.168.199.148back备机192.168.199.150真实服务器1192.168.199.155真实服务器2192.168.199.156关闭防火墙和selinuxmaster配置(149)添加虚拟IPipaddradd192.168.199.148/24devens33下载keepalivedyuminstallkeepali......
  • m基于OFDM+QPSK和LDPC编译码以及MMSE信道估计的无线图像传输matlab仿真,输出误码率,并
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       无线图像传输在现代通信系统中扮演着至关重要的角色。为了满足高质量、高可靠性的传输需求,研究者们不断探索各种先进的编码、调制和信道估计技术。OFDM、QPSK、LDPC和MMSE信道估计就是其......