locust之setup/teardown

2024-03-09 21:08
文章标签 setup locust teardown

本文主要是介绍locust之setup/teardown,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 单用户测试的setup和teardown行为,分别通过taskset类里面的on_start()和on_stop()方法实现。

on_start():在用户建立前执行,初始化用户相关配置。

on_stop():在用户测试结束后执行,清理恢复配置。

class MyTaskSet(TaskSet):""" 定义用户行为 """def on_start(self):print("Executing on_start ...")def on_stop(self):print("Executing on_stop ...")

2.整个负载测试的setup和teardown行为,则是通过locust.events添加事件监听器来实现。

test_start:在负载测试开始前执行,可以实现整个测试的初始化操作。

test_stop:在负载测试结束后执行,可以实现测试后的配置恢复和清理工作。

@events.test_start.add_listener
def on_test_start(environment, **kwargs):""" 定义负载测试前的行为 """print("Executing on_test_start ...")print(environment.runner.state)@events.test_stop.add_listener
def on_test_stop(environment, **kwargs):""" 定义负载测试结束后的行为 """print("Executing on_test_stop ...")

3.有一个比较特别一点的,就是进程process初始化init,相当于是worker的初始化,每个负载测试可以配置多个worker,实现分布式负载测试。

如下面代码来自用户手册,实现进程监控错误率,超过阈值后自动停止测试,添加检查是在workerrunner初始化时执行。

def checker(environment):""" 检查runner的计数器 """while environment.runner.state not in [STATE_STOPPING, STATE_STOPPED, STATE_CLEANUP]:time.sleep(1)if environment.runner.stats.total.fail_ratio > 0.2:print(f"Fail ratio is {environment.runner.stats.total.fail_ratio}, exit ...")environment.runner.quit()return@events.init.add_listener
def on_init(environment, **kwargs):""" 定义进程执行前的行为 """# 只有独立master模式运行时有效if not isinstance(environment.runner, WorkerRunner):gevent.spawn(checker, environment)

 

这篇关于locust之setup/teardown的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/791950

相关文章

cell phone teardown 手机拆卸

tweezer 镊子 screwdriver 螺丝刀 opening tool 开口工具 repair 修理 battery 电池 rear panel 后盖 front and rear cameras 前后摄像头 volume button board 音量键线路板 headphone jack 耳机孔 a cracked screen 破裂屏 otherwise non-functiona

跟我一起玩《linux内核设计的艺术》第1章(四)——from setup.s to head.s,这回一定让main滚出来!(已解封)

看到书上1.3的大标题,以为马上就要见着main了,其实啊,还早着呢,光看setup.s和head.s的代码量就知道,跟bootsect.s没有可比性,真多……这确实需要包括我在内的大家多一些耐心,相信见着main后,大家的信心和干劲会上一个台阶,加油! 既然上篇已经玩转gdb,接下来的讲解肯定是边调试边分析书上的内容,纯理论讲解其实我并不在行。 setup.s: 目标:争取把setup.

性能测试工具 wrk,ab,locust,Jmeter 压测结果比较

前言 在开发服务端软件时,经常需要进行性能测试,一般我采用手写性能测试代码的方式进行测试,那有什么现成的好的性能测试工具吗? 性能测试工具 wrk,ab,locust,Jmeter 压测结果比较 详见: 性能测试工具 wrk,ab,locust,Jmeter 压测结果比较 Jmeter性能测试 入门

vc++ 2008 Redistributable Setup Error 1935.An error occurred during the ...

如标题提示一般是因为.net 3.5 无法安装造成的。需要安装 .net后就可以正常安装。.net 安装需要开启windows update 服务要不然安装失败。 如果windows update 界面显示为空,或者下载失败。则是服务未开启,开启就行。 保证上图两个服务开启 .net 就可以正常安装。vs 2008 组件也就可以正常安装。

【Get深一度】Win10 Setup will now quit. 系统管理员失去安装和移除软件的权利(求助帖)

1.问题详述 笔者在安装软件的时候无意在任务管理器中叉掉了一个进程,然后 ,悲剧了。。莫名其妙就失去了权限。  2.以安装mathtype为例 没到最后都会弹出一个Setup :  问题手打一遍:You do not appear to have the rights required to install or remove s

vue3 + vite + setup语法糖使用minIO上传文件

前言:需要使用minio-js插件,原生minio使用vue2框架 npm i minio-js 源码: minio的部署可参考Windows部署MinIO,搭建本地对象存储服务_minio windows部署-CSDN博客 注意初始化与作为参数中的 bucketName 需要一致,部署本地minio后需要创建bucket <script setup>import { ElMessa

vue3 setup基本使用

1. 基本概念 在 Vue 3 中,setup 函数是在组件创建之前调用的,用于初始化组件的响应式数据、计算属性、方法等。setup 函数返回的对象会作为组件的上下文提供给模板,模板中可以直接访问返回的属性和方法。 <template><div><p>{{ message }}</p><button @click="increment">Increment</button></div></t

bitsandbytes使用错误:CUDA Setup failed despite GPU being available

参考:https://huggingface.co/docs/bitsandbytes/main/en/installation 报错信息 ======================

python setup.py build install的GCC版本报错

在进行一些python三方库编译的时候,有时候会因为环境中的GCC版本导致编译错误,比如在mmdet3d,mmcv-full等库的使用中。 Your compiler (g++ 4.8.5) may be ABI-incompatible with PyTorch! Please use a compiler that is ABI-compatible with GCC 5.0 and

python 利用 setup.py 手动安装第三方类库 - cocoajin

python 利用 setup.py 手动安装第三方类库 由于我在mac使用时,装了python3,默认有python2的环境,使用 pip 安装第三方类库时,老是安装到 python2的环境上; 在想办法安装到python3上时,费了不少力气;在家里的windows电脑上安装了python3,在使用pip安装类库时,虽然安装在了python3上, 可是在创建测试项目还是import