暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Locust性能测试-API调用详解4-继续TaskSet细节

TimTest 2021-02-18
579

在TaskSet中也可以设置on_start, on_stop方法,目的是为了在执行TaskSet之前和之后需要做的操作。需要了解的知识点有两个:

  • 父TaskSet on_start on_stop一般会各自执行1次。其中on_start会在场景开始时执行1次,on_stop会在场景执行结束后执行1次。

  • 子TaskSet on_start on_stop执行次数和此TaskSet被触发次数一致。比如TaskSet触发10次,那么on_start/on_stop会各被执行10次。


具体可以参考以下代码:

    from locust import task,between,TaskSet, User


    class TaskSetP(TaskSet):


    def on_start(self):
    print("This is TaskSetP starting process.")


    def on_stop(self):
    print("This is TaskSetP stopping process.")


    @task(2)
    class TaskSetC1(TaskSet):


    def on_start(self):
    print("This is TaskSetC1 starting process.")


    def on_stop(self):
    print("this is TaskSetC1 stopping process.")


    @task(2)
    def TaskC_1(self):
    print("This is TaskC_1")


    @task(1)
    def TaskC_2(self):
    print("This is TaskC_2")
    self.interrupt()


    @task(1)
    def logout(self):
    print("This is logout task")


    class MyUser(User):
    wait_time = between(2,3)
        tasks = [TaskSetP]
    复制


    locust file执行结果如下,可以发现:

    • TaskSetP starting process被执行了1次,stopping process也被执行了1次(是手动关闭场景执行触发的)。

    • TaskSetC1 starting/stopping process 执行次数和被选择执行的次数一致。

      [2021-02-18 09:25:22,339] jasondeMacBook-Pro.local/INFO/locust.runners: All users hatched: MyUser: 1 (0 already running)
      This is TaskSetP starting process.
      This is TaskSetC1 starting process.
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is TaskSetC1 starting process.
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is TaskSetC1 starting process.
      This is TaskC_1
      This is TaskC_1
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is logout task
      This is TaskSetC1 starting process.
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is TaskSetC1 starting process.
      This is TaskC_1
      This is TaskC_1
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is logout task
      This is logout task
      This is logout task
      This is TaskSetC1 starting process.
      This is TaskC_1
      This is TaskC_1
      This is TaskC_1
      This is TaskC_1
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is logout task
      This is TaskSetC1 starting process.
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is logout task
      This is logout task
      This is TaskSetC1 starting process.
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is TaskSetC1 starting process.
      This is TaskC_1
      This is TaskC_1
      This is TaskC_1
      This is TaskC_1
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is TaskSetC1 starting process.
      This is TaskC_1
      This is TaskC_1
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is TaskSetC1 starting process.
      This is TaskC_1
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is logout task
      This is TaskSetC1 starting process.
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is TaskSetC1 starting process.
      This is TaskC_1
      This is TaskC_1
      This is TaskC_2
      this is TaskSetC1 stopping process.
      This is logout task
      This is logout task
      This is logout task
      ^CKeyboardInterrupt
      2021-02-18T01:26:31Z
      [2021-02-18 09:26:31,790] jasondeMacBook-Pro.local/INFO/locust.main: Running teardowns...
      [2021-02-18 09:26:31,790] jasondeMacBook-Pro.local/INFO/locust.main: Shutting down (exit code 0), bye.
      [2021-02-18 09:26:31,790] jasondeMacBook-Pro.local/INFO/locust.main: Cleaning up runner...
      This is TaskSetP stopping process.
      复制


      文章转载自TimTest,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论