如何测试托管在 Azure Appservice 上的 SignalR 应用程序(负载 + 功能组合)

Posted

技术标签:

【中文标题】如何测试托管在 Azure Appservice 上的 SignalR 应用程序(负载 + 功能组合)【英文标题】:How do you test a SignalR application (load + functional combined) hosted on an Azure Appservice 【发布时间】:2020-04-17 15:54:50 【问题描述】:

我们正在构建一个 SignalR 应用程序,用于在活动和大会期间(实时)向观众提问。 我们预计有 1000-2000 个活跃并发用户的会话,这意味着他们中的大多数将同时连接。 这将在短时间内造成重负荷。 我们想模拟 x 数量的将同时连接的唯一客户端。 例如 1000 个用户在 30 秒内连接。 语言和 signalR 包: 该应用程序是使用带有 React 前端的 .NET Core 2.2 构建的。 *SignalR 包 (.NET) Microsoft.AspNetCore.SignalR.Core (1.1.0) *SignalR 包 (npm) @aspnet/signalr (1.1.4) Azure 设置 我们正在使用 Azure SQL DB 在 Azure Appservice 上运行我们的应用程序。 我们正在使用 Azure SignalR 服务,并将根据客户的需要进行扩展。

测试 我们尝试使用 Jmeter 进行负载测试,并进行了 GUI 测试(使用 Selenium 进行小规模 100-200 用户测试)。我们还运行了一个应用内测试,通过 javascript 循环创建集线器连接。但是我们不能确保我们的应用程序可以使用 1000-2000 个活动连接。 我的问题是如何测试这种类型的应用程序并确认它。我不能成为第一个构建这样的应用程序的人。

【问题讨论】:

【参考方案1】:

最明显的方法是:

    Crank, the tool for SignalR performance testing from Microsoft signalr-tester JMeter 应该是一个不错的选择,查看How to Load Test Async Requests with JMeter 文章了解更多信息,它也可以通过WebDriver Sampler 与 Selenium 集成

【讨论】:

以上是关于如何测试托管在 Azure Appservice 上的 SignalR 应用程序(负载 + 功能组合)的主要内容,如果未能解决你的问题,请参考以下文章

Azure App Service

Azure 应用程序网关与 API AppService 没有 API 网关

如何测试数据库是不是托管在 SQL Azure 上?

Azure App Service-多语言/高可用/自动缩放的Web托管服务

Azure web appservice 上的 Python websocket 支持?

AppService 的 Terraform 用例