以如下官方例子来讲解TaskSet的用法以及在测试运行中的一些细节。
from locust import User, TaskSet, between,task,constantclass ForumSection(TaskSet):wait_time = constant(1)@task(10)def view_thread(self):print("This is task viewThread")@task(1)def create_thread(self):print("This is task create thread")@task(1)def stop(self):self.interrupt()class LoggedInUser(User):wait_time = between(5,10)tasks = {ForumSection:2}@taskdef index_page(self):print("this is a index page.")
综合来看,这里总结下使用这种模式管理性能测试的一些要点。
自定义TaskSet子类必须要继承TaskSet类
如果TaskSet类设置了测试运行时参数,比如wait_time,那么以TaskSet类设置为准,如果TaskSet类中没有设置参数,那么会沿用User类中的设置。
如果某个线程(用户) 执行了TaskSet类中的stop任务,那么该线程会跳回父节点,在此例中,是跳回到LoggedInUser这个用户类中,那么下一步,该线程有可能执行任务“index_page”,也有可能执行任务“ForumSection”。以此类推。
在TaskSet类执行任务时,是以该TaskSet类内的所有符合条件的任务为范围,此TaskSet类之外的任务,不在权重的计算范围内。
文章转载自TimTest,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




