20K 用户的 Web UI 负载测试

Posted

技术标签:

【中文标题】20K 用户的 Web UI 负载测试【英文标题】:Load testing of Web UI for 20K users 【发布时间】:2021-04-14 07:51:01 【问题描述】:

我已经为我的 Web 应用程序使用 selenium webdriver io 开发了端到端工作流的自动化脚本。我想使用相同的脚本进行负载测试。我的要求是为 20K 用户测试 Web UI 和后端 API。您能否建议我如何使用 Selenium 实现它?

【问题讨论】:

【参考方案1】:

对于 20K 用户,您将需要 20k 浏览器,对于 20k 浏览器,您将需要我不知道实际有多少,但请查看 Firefox 87 system requirements:

每个浏览器实例一个 CPU core 每个浏览器实例 2 GB RAM

如果您在某处拥有这样一台超级计算机或有预算在云中启动这么多机器 - 您可以scale your Selenium tests using i.e. K8S cluster

但是,考虑将 Selenium 测试转换为基于 HTTP 协议的负载测试可能是一个更好的主意,大多数负载测试工具都提供 HTTP Proxy server 用于记录测试,因此您可以 replay your Selenium tests via this proxy 并将它们转换为负载测试工具脚本。

基于协议的测试在 CPU 和 RAM 方面占用的空间要小得多,因此您应该能够使用相当小的硬件来进行测试。

【讨论】:

好的,谢谢您的回复。如果我想在负载下测试应用程序的前端(Web UI),还有其他工具可以使用吗? 使用负载测试工具创建负载并使用 Selenium 1-2 线程来检查前端性能。如果您正在寻找一个特定的工具,您可以考虑Apache JMeter,可以快速convert Selenium tests to JMeter 并且通过WebDriver Sampler 与Selenium 集成JMeter 您可以使用Taurus 并排运行

以上是关于20K 用户的 Web UI 负载测试的主要内容,如果未能解决你的问题,请参考以下文章

拥有数千个虚拟用户的 Node.JS 负载测试工具

使用外部文件和负载测试 VS2013 进行编码的 UI 测试

Visual Studio Web 负载测试

负载测试经过身份验证的用

VS 2010 Web负载测试 - 从CSV为每个虚拟用户设置唯一值

Visual Studio 2012 负载测试忽略步数