1. 程式人生 > 其它 >locust 使用佇列進行引數化操作

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