python locust 效能測試:巢狀
阿新 • • 發佈:2019-01-01
TaskSet類和TaskSequence類可用於巢狀<可以在TaskSequences中巢狀TaskSets,反之亦然>;
from locust import TaskSet, task, HttpLocust, TaskSequence, seq_task import subprocess class WebUser(TaskSet): @task(5) def first_task(self): print('執行5次;') @task(2) class IosUser(TaskSet): @task(1) def second_task(self): print('1次') @task(2) def three_task(self): print('2次') self.interrupt() @task(2) class AndroidUser(TaskSequence): @seq_task(2) @task(1) def android_task(self): print('這是android使用者;') self.interrupt() @seq_task(1) @task(1) def ios_task(self): print('這是ios使用者;') class LocustFun(HttpLocust): host = 'https://passport.cnblogs.com' task_set = WebUser max_wait = 6000 min_wait = 3000 if __name__ == '__main__': subprocess.check_call('locust -f G:\Interface_framework_pytest\\tmp\\test2.py --no-web -c 10 -r 1')
self.interrupt()函式用於將執行移交給父TaskSet,需要在巢狀中使用,在Locust類的task_set屬性指向的主TaskSet中使用會報錯:InterruptTaskSet exception具有中斷功能,可以與任務加權一起定義模擬使用者離開論壇的可能性;
TaskSequence類,裝飾器@seq_task(1),控制任務的執行順序,引數:number;