如果 Selenium 无法生成 200 或 300 个请求,它在网页负载测试中的作用是什么?我明白,客户端自动化是可以实现的。但我该如何在 1000 或 2000 个并发用户的真实环境中测试我的 Web 应用程序。
我基本上该怎么做?
答案1
Selenium 运行实际的 Web 浏览器来自动测试网站。大多数真实的用户体验测试都不需要人工查看,非常适合测试功能。但请考虑您最喜欢的 Web 浏览器的资源占用情况,这相当繁重。
在线重放 HTTP 的速度会快得多。负载测试工具是无需浏览器的用户代理。理想情况下,从您的实际应用程序流量中捕获并以高速重放。
发现负载测试工具你喜欢。幸运的是,HTTP 无处不在,所以这可能已经存在。例如,The Grinder、Gatling、GoReplay、JMeter、Locust、Tsung。使用这些进行负载测试的意图在其 UI 中很明显:每秒请求数很突出。
答案2
按照Selenium 文档:
一般不建议使用 Selenium 和 WebDriver 进行性能测试。不是因为它能力不足,而是因为它没有针对该任务进行优化,不太可能获得良好的结果。
主要有两个限制:
有一些指标和关键绩效指标包括但不仅限于:
- 用户数和每秒点击量/响应时间/错误数等之间的关系。
- 网络指标,例如连接时间,第一个字节的时间, ETC。
资源消耗,即Firefox 95每个实例需要 1 个 CPU 和 2 GB 的 RAM,因此对于 1000 个用户,您将需要 1001 个 CPU 和 2 TB 的 RAM
Selenium 在网格节点数量方面的限制(没有官方的严格限制,但是在有数百个浏览器的情况下,我预计吞吐量方面会出现一些问题)
因此,我建议重新考虑你的方法,并使用专门的负载测试工具