使用 ReactJS FE / Java BE 对 Web 应用程序进行压力/负载测试:使用哪个工具

Stress / Load Test a web app with ReactJS FE / Java BE: which tool to use

我目前工作的公司希望通过尽可能接近现实的方式对其在线商店进行负载测试。值得注意的是,他们想要对购买的整个过程进行负载测试(转到网站 -> 文章 -> 添加到购物车 -> 来宾或登录 -> 完成)。

我遇到的问题是,添加到购物车按钮有一个随机的 class 名称,通过这个 class 将在单击时调用 JS 函数。 此外,大多数页面元素都是通过 ReactJS 调用的。

我已经调查过 Locust.io,但我未能发送 JS 事件。 Selenium 可以让我执行任务,但不能将其扩展到数万个用户。 我快速检查了 JMeter,但显然它也不处理 JS。

那么,我想听听您的意见,了解哪种负载测试工具适合这种情况?

提前致谢!

所有可扩展的负载测试工具都在协议级别工作,JMeter 也不例外。

该过程是使用此处描述的 JMeter 记录功能来记录您的场景:

如果您还想获得用户体验反馈,那么解决方案是添加 Webdriver 测试,只占总测试的一小部分,以便了解浏览器级别的响应时间。

如果您想了解有关负载测试和 JMeter 的更多信息,这篇 book 会对您有所帮助。

任何能够发送 HTTP Requests 并像真实浏览器一样运行的工具(像浏览器一样处理图像、脚本、样式、字体、headers、cookies、缓存等)

HTML class attribute is for assigning CSS styles, you ain't gonna need it for properly forming the relevant HTTP Request, you should focus on other things, i.e. capture the associated traffic using your browser Developer Tools 并查看请求的外观以及如何配置您选择的负载测试工具来模拟此请求。

JMeter 可能是一个不错的选择,据我所知,它是唯一能够模拟 AJAX requests via Parallel Controller

的工具

您可以试试 HPE 的 LOADRunner,结合使用 TC Web 和 WEB(http/html)协议来测试您的应用程序。您可以试用 30 次免费试用,看看是否有效。

负载测试 ReactJS 组件或道具(DOM 东西)有点复杂,您将不得不使用 selenium(UI)+jmeter(Web http 流量)的组合来捕获完整(大约 80% 准确)最终用户行为。

干杯 阿俊