我正在尝试使用录制控制器设置JMeter负载测试.
这导致重复Web浏览器将进行的所有调用 - 包括css文件,js文件和图像.
鉴于Web浏览器将同时获取这些内容(同时执行大约10个Web请求).jmeter文档倾向于将1个用户等同于1个线程 - 但这与现代Web浏览器的工作方式不一致.
在设置负载测试时,是否需要为每个用户使用10个线程?
严格说来,JMeter无法模拟浏览器.JMeter有自己的局限性,比如不解析.js文件(按照3.0版本),从事件中发送ajax请求等.
但是,对于您的问题,JMeter有支持.
因此,您可以根据您的要求指定并发池大小,例如将并发池大小值设置为10,这将解决您的问题.
今天浏览器通常同时发送请求,每个浏览器都有自己的最大值,可以同时进行最大连接.
请参阅以下链接: 浏览器中的最大并行http连接? 以及如何在使用xhr轮询时解决Chrome的6连接限制.
当您使用"检索嵌入式资源"并设置"并发池大小"时,您只需要添加父级采样器,它会触发Jmeter本身的.css,.js文件等资源请求.(例如:仅添加stackoverflow.com,它将自动加载所有资源,如.css,.js).在录制期间,所有这些请求都是单独记录的,因此您需要删除所有这些请求或创建仅包含父采样器的新计划/线程组.
注意:正如我所提到的,由于Jmeter不会像浏览器那样解析它们,因此不会发送从.js,.csv触发的请求.您只需要明确地将这些请求添加为采样器.添加查看结果树并比较Jmeter和浏览器(F12 - >网络选项卡)触发的请求,以了解Jmeter缺少哪个请求.