我想知道是否有人用负载测试的请求响应脚本解决了浏览器多线程的问题
答案 0 :(得分:0)
如果您要使用真正的Chrome和FF浏览器进行负载测试,可以考虑以下选项:
Selenium-Grid允许您在不同的计算机上并行运行不同浏览器的测试。也就是说,针对运行不同浏览器和操作系统的不同计算机同时运行多个测试。从本质上讲,Selenium-Grid支持分布式测试执行。它允许在分布式测试执行环境中运行测试。
Apache JMeter使用WebDriver Sampler插件。这样,您将能够以HTML Reporting Dashboard的形式控制并发性并获得性能指标。
答案 1 :(得分:0)
模拟Web浏览器并发性是大多数负载测试工具非常糟糕的事情,如果有的话。我们尝试在k6中通过让每个VU(虚拟用户)使用多个并发TCP连接来并行获取内容来尝试执行此操作。有一个特殊的API函数 - http.batch() - 可以启用此功能。 http.batch()接受多个URL作为输入参数,并且将并行获取尽可能多的URL。
像Dmitri写的那样,Jmeter有一个提供并发性的插件 - 有点像。然而,它实际上做了什么(除非我被误导)是在多个VU上分散请求。每个VU仍然只使用一个并发连接,这意味着如果您想要模拟100个真正的浏览器用户,您可能需要启动1,000个VU来实现这一目标。在我看来,这与你使用任何其他负载测试工具所得到的并没有太大的不同:所有这些工具都允许你启动更多的VU来创建更多的并发性和更多的流量。我要说除了k6,可能还有一个或两个其他工具(而Jmeter不是其中之一),如果你想真正模拟浏览器的行为方式,唯一的选择就是使用Selenium Grid或其他东西类似于启动大量真实的,实际的浏览器来做负载测试。缺点是真正的浏览器运行起来非常昂贵:它们需要大量的CPU和内存。但它们提供了迄今为止最好的浏览器“模拟”。