Jmeter 持续进行压测,执行一段时间后,停止了,发现服务器持续有请求,为什么?

Jmeter 持续进行压测,执行一段时间后,停止了,发现服务器持续有请求,为什么?,第1张

出现这种情况的原因一般情况有两种:1: 服务器请求过多时,请求排队,jmeter 结束后,排队继续, 情况2: 网络阻塞,jmeter 结束后,部分请求仍处于请求状态,前者一般是由于请求过多时,服务器将请求进行排序导致的,而后者则是网络原因

黑马程序员公开课上就有经常会看到相似的知识点。

jmeter中http服务器代理:

Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。

HTTP的代理服务器即是Web服务器又是Web客户端。

详细介绍:

我们使用网络浏览器直接链接其他Internet站点并取得网络信息时,需送出Request信号来得到回答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你。而且大部分代理服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS代理服务器,其原理大同小异。

在JMeter中可以使用自身就带的HTTP代理服务器组件录制脚本,可以录制在WEB上的操作,也可以录制在手机App上的操作。

1、测试计划内包含的元件

添加元件操作步骤:

 创建测试计划

 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组。

 在线程组中,添加配置原件“HTTP Cookie管理器”组件:选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP Cookie管理器。

 说明:如果录制的操作包括 用户登录操作 ,则需要添加“HTTP Cookie管理器”,添加之后不需要任何配置,录制后,脚本中便保存用户登录的相关信息。

 在测试计划下,添加非测试元件“HTTP代理服务器”组件:选中“测试计划”右键 —> 添加 —> 非测试元件 —> HTTP代理服务器。

 在HTTP代理服务器组件下,添加监听器“察看结果树”组件:选中“HTTP代理服务器”右键 —> 添加 —> 监听器 —> 察看结果树。

 最终测试计划中的元件如下:

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

2、HTTP代理服务器的设置内容

 在HTTP代理服务器组件中,我们需要编辑:

  端口: 默认8888,一般使用默认即可。主要不能与本地其他服务的端口号冲突,否则启动不了。

  HTTPS Domains: 我的理解就是,设置代理服务器的主机IP地址或者域名。因为在我们本地使用,一般就是 localhost 或者127001即可,当然不填写也是可以的。(此填写的地址一定要能够连接外网)

  设置目标控制器: 也就是录制的组件存储到什么位置。这个一定要选,下图中选择了存储到目标线程组中。

 配置完的界面内容,如上图所示。

3、设置浏览器的代理服务器

 每个浏览器都可以设置服务器的代理,以Chrome浏览器为例。设置需要区分是否为局域网

 点击右上角的设置 —> 高级 —> 系统 —> 最下面的‘’打开您计算机的代理设置‘’,点击右侧图标,就可以进入到代理服务器的设置页面了。

 选要选中手动配置代理服务器,然后输入代理服务器的地址或者域名,还有端口号。

 这里的配置,要和上面JMeter的HTTP代理服务器中的端口和HTTPS Domains的配置要对应上。

 这样的话,浏览器中的操作,会先发送到JMeter中的HTTP代理服务器,在通过网络进行传输。这样JMeter中就可以录制下我们的操作,生成脚本了。

 如下图所示:

4、录制脚本

 以上内容设置完毕后,在浏览器地址栏中输入要录制脚本的地址。

 然后在JMeter中的HTTP代理服务器界面,点击启动按钮。

 提示:在HTTP代理服务器界面点击“启动”时,Meter将生成自己的证书。证书生成可能需要一些时间,在此期间,GUI将无响应。证书生成完成后,GUI将显示一个弹出对话框,其中包含根CA证书的详细信息,证书有效期为7天。该证书需要由浏览器安装,以便接受JMeter生成的主机证书。

 如下图所示:

 浏览器配置证书: 浏览器中导入证书 ,jmeter安装目录下的ApacheJMeterTemporaryRootCAcrt

        之后开始在网站上进行操作,所有操作发出的请求,都会录制到JMeter脚本中。

 操作完成之后,到JMeter的HTTP代理服务器中点击“停止”,然后将浏览器的代理设置恢复原样即可。

 不恢复的话,会导致你无法使用浏览器访问外网。

 如下图所示:录制时弹出的控制器,不用进行设置,关闭时 点击 停止 即可

 5、查看录制的脚本

在JMeter中我们可以看到已经 记录 了许多请求对应的信息,包括PHP、js、jpg、png、txt等请求。

 如下图所示:

 我们可以看到,我们只进行了简单的几步操作,却录制这么的请求。是因为JMeter录制很多非关键性的请求,这就需要我们进行一些优化。

 录制脚本的优化有两个步骤:

 在录制的时候,做一些过滤和排除操作。

 在录制后的脚本中手动优化,删除不需要的组件,增加自己需要的组件。

 1)服务器名称或IP与目标网站不同的、无关的,可以删除。

 2)js/css/png/jpeg等这类请求删掉。

 3)没有传递任何数据的请求可以屏蔽掉,等流程能回放成功了,这些再删除。如果回放不成功,再一个一个打开,进行检查。

6、HTTP代理服务器的排除模式

 在测试脚本中有一些录制的信息是没有任何作用的,所以我们在录制脚本的时候,就可以通过HTTP代理服务器的排除模式,排除一些不需要的请求信息,如css、gif、png等请求。

 例如:

 在包含模式添加填上 \jsp,只在请求JSP文件时录制脚本。

 这里通常都是设置JSP或者HTML,可以根据具体情况进行填写。

 在排除模式处填上\js ,在请求js文件时不录制脚本。

 这里通常都是设置js、jpg、png、gif、css等,这些类型文件请求都是不需要录制的。

 当然我们也可以点击添加建议排除按钮,会自动生成一个过滤的正则表达式。

 如下图所示:

 添加上这些时候,录制出来的脚本,多余的累赘会减少很多。

7、保存脚本

 脚本录制完成后,需要进行脚本的保存。

 把脚本保存到本地,可以分享给其他成员,进行查看、编辑、回放等操作。

JMeter负载测试是使用一个名为Apache JMeter的负载测试工具完成的测试过程,Apache JMeter是一个基于Java的开源桌面应用程序。它还有助于分析高负载下的整体服务器。

JMeter性能测试是使用Apache JMeter测试Web应用程序性能的测试方法。JMeter for Performance Testing有助于同时测试静态和动态资源,有助于发现并发用户JMeter性能测试,包括Web应用的负载测试和压力测试。

Apache JMeter测试工具在性能测试方面提供以下好处

JMeter性能测试包括:

下图显示了JMeter负载测试如何模拟重负载:

在本教程中,我们将对1000名用户进行baiducom的性能分析 。在测试目标Web应用程序的性能之前,我们应该确定-

以下是这个实际示例的路线图

右键单击“测试计划”,添加一个新的线程组:Add->Thread(Users)->Thread Group

在线程组控制面板中,输入线程属性,如下所示:

线程计数和循环计数不同。

启动周期告诉JMeter在启动下一个用户之前要延迟多长时间。例如,如果我们有100个用户和100秒的启动周期,那么启动用户之间的延迟将是1秒(100秒/100个用户)

现在我们确定此测试中的JMeter元素。这些元素包括

可以通过右键单击Thread Group并选择:Add->Config Element->HTTP request Defaults来添加此元素。

在Http request Defaults控制面板中,输入正在测试的网站名称( http://wwwgooglecom )

右键单击Thread Group并选择:Add->Sampler->HTTP Request。

在HTTP求控制面板中,路径字段指示要将哪个URL求发送到Google服务器。

例如,如果在路径字段中输入“日历”。JMeter将创建指向谷歌服务器的URL求 http://wwwgooglecom/calendar

如果保留路径字段 空白 jeter将创建指向谷歌服务器的url求 http://wwwgooglecom 。 在此测试中,将路径字段保留为空,以使JMeter创建到Google服务器的 http://wwwgooglecom 请求。

JMeter可以将测试结果以Graph格式显示。 右键单击“测试计划”,选择“添加”->“侦听器”->“绘制结果图”

按工具栏上的Run(运行)按钮(Ctrl+R)开始软件测试过程。将看到测试结果实时显示在Graph上。 下图显示了一个测试计划的图表,其中我们模拟了访问 wwwgooglecom 网站的100个用户。

在底部,有以下用颜色表示的统计数据:

让我们在下图中分析一下Google服务器的性能。

要分析被测Web服务器的性能,应该关注两个参数

吞吐量是最重要的参数。它表示吞吐量越高,服务器性能越好。 在本次测试中,Google服务器的吞吐量为1491193/分钟。该值相当高,因此我们可以得出结论,Google服务器具有良好的性能 偏差用红色表示-它表示与平均值的偏差。越小越好。

让我们将Google服务器的性能与其他Web服务器进行比较。这是网站 http://wwwyahoocom/ 的性能测试结果(可以选择其他网站)

被测网站 http://wwwyahoocom 的吞吐量为867326/分钟。这意味着该服务器每分钟处理867326个求,低于谷歌。 偏差为2689,远高于谷歌(577) 。所以我们可以确定这个网站的性能低于谷歌服务器。

注意:上面的值取决于几个因素,比如Google当前的服务器负载,网速,CPU能力等等。所以不要惊慌!

如果在运行上述方案时遇到此问题执行以下操作

浏览网页: https://wwwitxiaonvcom/ ,了解更多IT信息

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Jmeter 持续进行压测,执行一段时间后,停止了,发现服务器持续有请求,为什么?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情