locust 使用队列进行参数化操作

2022/4/5 23:49:06

本文主要是介绍locust 使用队列进行参数化操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递

基本方法:

Queue.Queue(maxsize=0) FIFO,如果maxsize小于1就表示队列长度无限
Queue.LifoQueue(maxsize=0) LIFO,如果maxsize小于1就表示队列长度无限
Queue.qsize() 返回队列的大小
Queue.empty() 如果队列为空,返回True,反之False
Queue.full() 如果队列满了,返回True,反之False
Queue.get([block[,timeout]]) 读队列,timeout等待时间
Queue.put(item, [block[,timeout]]) 写队列,timeout等待时间
Queue.queue.clear() 清空队列

 

示例代码:

from locust import HttpUser, TaskSet, task
import os, queue, json


class MyTask(TaskSet):
    @task
    def ParamsTest(self):
        self.data = {"skuId":123,"num":10}
        try:
            # 从队列头部获取一个值
             #self.user 指向HttpUser
              self.data["num"]  = self.user.queue_data.get()
        except   queue.Empty:
              print("队列中没有数据")
              exit(1)
        print(self.data)
        response = self.client.post("/pinter/com/buy",data= self.data,name="PostParams")
        print(response.text)
class WebsiteUser(HttpUser):
    task = tasks = [MyTask]
    host = "http://localhost:8088"
    # 定义一个队列
    queue_data = queue.Queue()
    for i in range(1, 10):
         queue_data.put_nowait("%d" % i)
    max_wait = 4000
    min_wait = 6000


这篇关于locust 使用队列进行参数化操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程