【问题标题】:Customizing Locust input params自定义 Locust 输入参数
【发布时间】:2021-09-13 18:07:01
【问题描述】:

所以我有 locust 在 k8s 上的分布式设置中运行。目前我正在通过 UI 启动负载测试。在我当前的设置中,主进程和工作进程已经在运行,正在等待我通过 UI 启动负载测试。我希望为我的蝗虫设置添加一些输入自定义。我只想接受更多参数,如端点权重等。然后,这应该附加到已经存在的 locust 进程,并使用正确的配置启动负载测试。我知道 locust 支持扩展 UI 以查看更多负载测试输出,但我找不到任何可以扩展/自定义输入表单的东西。

[编辑]

我正在尝试使用custom arguments,但它似乎不起作用。这是我的代码

class CusLoadTest(HttpUser):

      @events.init_command_line_parser.add_listener
      def _(parser):
         parser.add_argument("--user-count", type=str, env_var="USER_COUNT", default="1000", help="1000")

      def __init__(self, parent):
          super(CusLoadTest, self).__init__(parent)

      def __check_environment(self):
         self.user_count = int(self.environment.parsed_options.user_count)
         logger.info("Using {}".format(self.user_count))

      def on_start(self):
          self.__check_environment()

记录器总是打印 1000 个用户并忽略我传递到 Web UI 的任何内容。不知道发生了什么。

【问题讨论】:

    标签: python performance locust


    【解决方案1】:

    Locust 支持在命令行上添加自定义参数有一段时间了,但是最近才添加了在 Web UI 中设置这些参数(并将它们转发给分布式运行的工作人员)的功能(在 2.2.0 中)

    有关完整文档,请参阅 https://docs.locust.io/en/latest/extending-locust.html#custom-arguments

    如果您有一些不想在 UI 中显示的自定义设置,则需要最新的预发布版本(因为该功能尚未发布)。 2.2.2.dev30 是最新的。

    【讨论】:

    • 哇哦!我怎么错过了?正是我想要的。谢谢!
    • 看起来自定义参数没有按预期工作。我在原始问题中添加了更多信息。
    • 嗯。在我看来,您刚刚将您的问题变成了一个全新的问题。我认为你应该把它改回来,也许为你现在遇到的问题提交一个 github 问题。它应该工作。我看到的唯一特别之处在于您的代码是您运行@events.init_command_line_parser.add_listener inside 用户(而不是在顶层)
    • 我认为问题在于我使用 USER_COUNT 作为我的参数名称并且不知何故不起作用。更改名称似乎有效。我会接受答案。
    • 我认为名称 user_count 恰好在 web gui 中用于某些地方的用户总数(-命令行上的用户),也许这就是导致问题的原因。
    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2022-06-15
    • 2017-01-09
    相关资源
    最近更新 更多