Locust.io设置,拆解未执行

时间:2018-03-22 22:40:28

标签: locust

我正在尝试了解蝗虫测试中的流程。我已经设置了这个非常简单的任务集和用户:

from locust import TaskSet, HttpLocust, task

class BlazeDemoTaskSet(TaskSet):

    def setup(self):
        print("hello from taskset setup")

    def teardown(self):
        print("hello from taskset teardown")

    def on_start(self):
        print("hello from taskset on_start")

    def on_stop(self):
        print("hello from taskset on_stop")

    @task
    def reserve_task(self):
        post_response = self.client.post(
            url="/reserve.php", 
            params={"toPort":"Buenos Aries", "fromPort":"Paris"})


class BlazeDemoUser(HttpLocust):
    task_set = BlazeDemoTaskSet
    min_wait = 500
    max_wait = 1500
    host = "http://www.blazedemo.com"

    def setup(self):
        print("hello from httplocust setup")

    def teardown(self):
        print("hello from httplocust teardown")

我运行它:

locust -f tests/blazedemo.py --no-web -c 1 -r 1 -n 2

我没有看到HttpLocust setupteardown方法被执行,我没有看到TaskSet setup,{{1正在执行的方法或on_stop方法。唯一可以运行的方法是teardownon_start

According to the docs应该运行所有这些方法。每次运行设置和拆卸一次,并为每个启动的用户设置on_start和on_stop。

以下是Locust的整个输出:

reserve_task

我错过了什么?提前谢谢!

2 个答案:

答案 0 :(得分:4)

  

根据文档,应该运行所有这些方法。

此功能尚未在PyPI的最新稳定版本(目前为0.8.1)中提供。 setup / terdown支持最近已合并,将在0.9版本中发布。现在,您必须从locustio Git repo安装master分支才能使用这些。

从master安装:

运行:

  • pip install -e git+https://github.com/locustio/locust.git@master#egg=locustio

或克隆git repo,然后运行:

  • pip install -e .

答案 1 :(得分:0)

Locust.setupLocust.teardownTaskSet.setupTaskSet.teardown挂钩在1.0版中已被删除。可以在docs上找到说明。

test_starttest_stop事件可用于在> = 1.0版本中实现相同的目的

来自文档:

from locust import events

@events.test_start.add_listener
def on_test_start(**kw):
    print("test is starting")

@events.test_stop.add_listener
def on_test_start(**kw):
    print("test is stopping")