Locust-plugins; Uncaught exception in event handler: TypeError: fire_deprecated_request_handlers() missing 1 required positional argument: 'context'

Locust-plugins; Uncaught exception in event handler: TypeError: fire_deprecated_request_handlers() missing 1 required positional argument: 'context'

我已经构建了一个可用的 locust-plugins 网络驱动程序脚本,并试图添加一些事务性计时器,当我 运行 该脚本时,我遇到了一个错误:

[2022-01-03 10:34:55,525] LHTU05CD943125T/ERROR/root:事件处理程序中未捕获的异常: 追溯(最近一次通话): 文件“C:\Program Files (x86)\Python38-32\lib\site-packages\locust\event.py”,第 40 行,在火中 处理程序(** kwargs) 类型错误:fire_deprecated_request_handlers() 缺少 1 个必需的位置参数:'context'

脚本继续 运行 但在每次事件调用时我都会看到上述错误。 我正在使用 locust 2.5.1 版和 locust-plugins 2.1.1 版。

@task
def open_digipass_homepage(self):
    self.clear()

    # CALL THIS ONCE
    start_time = time.monotonic()

    self.client.get("https://myurl-stage.com/")

    self.environment.events.request.fire(
        request_type="transaction",
        name="T000_SitePage",
        response_time=(time.monotonic() - start_time) * 1000,
        response_length=0,
        exception=None
    )

您的 self.environment.events.request.fire 调用缺少它期望的参数 context。这可能是也可能不是错误(不确定是否需要这样的东西,如果是的话),但您应该能够解决它。这是事件签名的文档:

http://docs.locust.io/en/stable/api.html#locust.event.Events.request

链接到此页面的上下文应该是什么:

http://docs.locust.io/en/stable/extending-locust.html#request-context

看起来这是一本字典,里面有你想传递的任何东西。基于 some code in the tests,我认为即使只添加 context={} 到您的电话也应该有效。像这样:

self.environment.events.request.fire(
    request_type="transaction",
    name="T000_SitePage",
    response_time=(time.monotonic() - start_time) * 1000,
    response_length=0,
    exception=None,
    context={}
)