【问题标题】:Load-testing Asp.net Core SignalR using Locust使用 Locust 对 Asp.net Core SignalR 进行负载测试
【发布时间】:2021-07-29 22:33:29
【问题描述】:

我想使用 Locust 对 SignalR 服务进行负载测试。我发现以下库可以发送和接收 SignalR 请求:https://pypi.org/project/signalrcore/

现在,根据 Locust 文档,下一步是为 Locust 编写一个可以发送 SignalR 请求的自定义客户端。但是有以下警告:

您使用的任何协议库都必须是 gevent 友好的(使用 Python 套接字模块或其他一些标准库函数,如 子进程),或者您的调用可能会阻塞整个 Locust/Python 过程。

一些 C 库不能通过 gevent 进行猴子修补,但允许 其他解决方法。例如,如果您想使用 psycopg2 来 性能测试PostgreSQL,可以使用psycogreen

我是 Python 的初学者,所以我不明白它的确切含义。我正在使用的库“signalrcore”是 100% 同步的。这是否意味着我不能将它与 Locust 一起使用? 我发现了一个使用 asyncio 的 signalrcore 分支。我应该改用那个 fork 并确保我所有的信号器调用都是非阻塞的吗?

谢谢!

【问题讨论】:

    标签: python locust


    【解决方案1】:

    SignalRCore 似乎在后台使用 requests 和 websocket-client,这两者都是 gevent 友好的。我不能肯定地说,但我会给它 90% 的可能性它会“开箱即用”:)

    如果您确实使用 asyncio ,您需要自己做一些魔术。至少我从来没有把它和 gevent 结合起来。

    【讨论】:

    • 太棒了!如果它运行良好并且您认为它可能对其他人有用,请考虑将其贡献给 locust-plugins
    猜你喜欢
    • 2020-01-02
    • 1970-01-01
    • 2019-12-26
    • 2019-09-18
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    相关资源
    最近更新 更多