嵌套式的locust
#-*-coding:utf-8-*- from locust import task,HttpLocust,TaskSet class UserbehaveSecond(TaskSet): def on_start(self): print ("start test") @task(2) def baidu(self): print ("I use baidu") @task(3) def souhu(self): print ("I use souhu") @task(2) def souhu(self): print ("lgout") self.interrupt() class UserbehaveFirst(TaskSet): tasks={UserbehaveSecond:2} @task(1) def google(self): print ("I use google") class Website(HttpLocust): task_set=UserbehaveFirst min_wait=1000 max_wait=2000 host="http://www.baidu.com"
这里我们用输出的方式代替请求接口的方式,去查看locust去调用行为类的方法的频率。用户类去定义第一层行为类为UserbehaveFirst,然后这个行为类去定义了一个tasks字典,表明我们调用UserbehaveSecond频率是第一个类的两倍。然后进入到第二层中,根据权重去分别去访问该类的各个方法。souhu这个方法用了一个父类的方法interrupt跳出这一层行为类。下面是我们这次测试的一部分结果: