我想模拟spikey流量,例如:
T0)T+5即时舱口+50 )T+10)是否可以创建相同数量的用户,而不是每一秒将其更改为每xx分钟一次?
发布于 2020-07-13 09:25:20
没有这样的内置特性(https://github.com/locustio/locust/issues/1353可以解决这个问题,如果它被实现的话)
解决方法之一是立即生成所有用户(使用大约100/s的产卵率),并让他们睡到该运行的时候:
import time
start = time.time()
class User1(HttpUser):
@task
def mytask(self):
# do actual task
class User2(HttpUser):
@task
def mytask(self):
while time.time() - start < 300:
time.sleep(1)
# do actual task
class User3(HttpUser):
@task
def mytask(self):
while time.time() - start < 600:
time.sleep(1)
# do actual task
...您可能可以做一些聪明的事情,并将其放在一个类中,但我将把它作为一个练习:)
发布于 2022-05-13 12:51:50
蝗虫2.8.6更新
现在,您可以从使用自定义形状中获益。在蝗虫文献阅读更多内容。
您应该使用刻度函数,并定义用户限制和生成率的返回元组。
下面是一个代码示例:
from locust import LoadTestShape
class SharpStepShape(LoadTestShape):
increase_delay = 300 # 5 minutes for increase
increase_size = 50 # number of extra users per increase
def tick(self):
run_time = self.get_run_time()
step_number = int(run_time / self.increase_delay) + 1
user_limit = int(step_number * self.increase_size)
return user_limit, self.increase_size然后,只需将此形状导入到蝗虫文件中,它将使用此形状进行负载测试。
from locust import User
from sharp_step_shape import SharpStepShape
class PerformanceUser(User):
passhttps://stackoverflow.com/questions/62872079
复制相似问题