当前位置:网站首页>性能测试---locust的on_start 和 on_stop 方法

性能测试---locust的on_start 和 on_stop 方法

2022-06-21 16:08:00 晚风吹儿

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

用户(TaskSets)可以声明一个on_start方法或 on_stop方法。 on_start开始运行时调用它的方法, on_stop停止运行时调用它的方法。对于TaskSet on_start方法模拟用户开始执行时调用,TaskSet on_stop时模拟用户停止执行时调用

一、 on_start

解析:
每次在开始任务时,先执行on_start方法,只执行一次
再执行具体的任务

import time
from locust import HttpUser, task, between

class StartUser(HttpUser):
    wait_time = between(1, 5)

    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")

    @task(3)
    def view_items(self):
        for item_id in range(10):
            self.client.get(f"/item?id={
      item_id}", name="/item")
            time.sleep(1)

    def on_start(self):
        self.client.post("/api/v1/login",{
    "username": "admin","password": "admin123"})
    
    def on_stop(self):
        time.sleep(5)
        
class WebsiteUser(HttpUser):
    tasks = [StartUser]
    host = "http://192.168.44.5:4444"

二、 on_stop

解析:
每次在开始任务时,先执行on_start方法,只执行一次
再执行具体的任务
执行完任务后去执行on_stop

import time
from locust import HttpUser, task, between

class StartUser(HttpUser):
    wait_time = between(1, 5)

    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")

    @task(3)
    def view_items(self):
        for item_id in range(10):
            self.client.get(f"/item?id={
      item_id}", name="/item")
            time.sleep(1)

    def on_start(self):
        self.client.post("/api/v1/login",{
    "username": "admin","password": "admin123"})
    
    def on_stop(self):
        time.sleep(5)
        
class WebsiteUser(HttpUser):
    tasks = [StartUser]
    host = "http://192.168.44.5:4444"

三、运行规则

测试开始后,每个虚拟用户(Locust实例)的运行逻辑都会遵循如下规律:
先执行WebsiteTasks中的on_start(只执行一次),作为初始化;

从WebsiteTasks中随机挑选(如果定义了任务间的权重关系,那么就是按照权重关系随机挑选)一个任务执行;

根据Locust类中min_wait和max_wait定义的间隔时间范围(如果TaskSet类中也定义了min_wait或者max_wait,以TaskSet中的优先),在时间范围中随机取一个值,休眠等待;

重复2~3步骤,直至测试任务终止

原网站

版权声明
本文为[晚风吹儿]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44688529/article/details/125385653