使用Jmeter模拟浏览器

来源:互联网 发布:a 算法八数码 编辑:程序博客网 时间:2024/05/19 11:48

Jmeter是常用的模拟多用户同时访问web页面URL的压力测试工具。然后,为了模拟的准确,Jmeter需要正确的配置,使它像浏览器一样工作。在这篇文章中,我怎样配置Jmeter,可以准确的模拟浏览器实际的发送的请求。


在了解怎样怎样配置Jmeter之前,我们先来了解一下浏览器是如何工作的:

  • 当用户在浏览器输入一个web页面URL,它会连接到服务器,开始下载页面,并开始解析。
  • 通过解析,它会遇到类似JavaScript,CSS和图片文件的url请求。
  • 浏览器然后创建更多的线程,每个JavaScript,CSS和图片文件的url请求打开一个新的连接下载。大多数浏览器会限制与每个服务器的连接数在本文写作时,Firefox限制6个连接),和下载线程的总数在本文写作时,Firefox限制48个连接)。
  • 当所有的URL下载完,认为该web页面加载完成。

Jmeter的两个配置可以模拟浏览器上面的行为:

  • 从HTML文件获取所有内含资源

此复选框在配置元素“HTTP请求取样器”和“HTTP请求默认值”的底部。

选中该复选框,Jmeter下载页面中包含的资源,如JavaScript,CSS和图像,就像浏览器一样。

如果需要看哪些资源下载了及他们的性能指标,添加“查看结果树”。注意,在聚合报告中不包含这些内嵌资源的统计,

  • 使用并发池,size=N

选中复选框,并发池行为如下:

从HTML文件获取所有内含资源使用并发池行为选中复选框复选框未选中复选框web主页面和嵌入的资源将在同一个线程中被下载。
例如,如果线程组模拟3个用户,Jmeter创创建“线程组3-”,名字从“线程组1-1”到“线程组1-3”。
每个线程将在各自的线程内根据资源顺序下载所有的内嵌资源。
如果页面P包含资源A、B、C,Jmeter下载方式如下:
线程组1-1:P,A,B,C(一个接一个的下载)
线程组1-2:P,A,B,C(一个接一个的下载)
线程组1-3:P,A,B,C(一个接一个的下载)
选中复选框选中复选框
池大小=X像上面一样,Jmeter创建一个名为“线程组1-K”来模拟用户线程。
此外对于这些线程中的每一个模拟的用户,Jmeter创建单独的线程池,大小为X,命名为pool-n-thread-m。
web主页有用户线程“线程组1-K”下载,而嵌入的资源由命名类似pool-n-thread-m的线程池中的线程下载。因此,要模拟浏览器,选中“使用并发池”复选框,并指定合理的池大小(浏览器典型配置4-8)。
但是,设置并发池大小时,需要关注模拟用户数量,因为每个模拟的用户创建一个单独的线程池。如果很多用户,创建过多的线程会对Jmeter端的贷款产生争用,从而影响响应时间。如果要模拟大量并发用户,可以使用多台Jmeter测试机。


文章来源http://www.pathbreak.com/blog/simulating-browsers-using-jmeter,翻译如有不当,敬请谅解。

1 0
原创粉丝点击