zoukankan      html  css  js  c++  java
  • 【NO.10】Jmeter

      上1篇介绍了"使用Jmeter对一个接口地址或者一个页面地址执行N次请求",也就是你自己干了一件从"零"开始的事情。

      那么这1篇介绍"如何使用Jmeter录制'访问一个接口地址或者一个页面地址'的脚本",有何用途呢?省事儿呗,因为不用从"零"开始了。但是这个方式虽然有利,但也会有弊,那么弊就是你需要对录制完成的脚本再做进一步优化。这么看来也挺费劲的,但是存在即合理,这项技能(录制脚本再执行测试)会比不会好。 

    1.    运行Jmeter.bat

    双击"Jmeter.bat"文件,稍等片刻后Jmeter会被启动,如下图所示:

    2.    建立线程组

      在节点"测试计划"下,建立1个被称作"线程组"的东西,如下图所示:

      这个"线程组"的作用是什么呢?

      它的作用就是控制线程的数量。

      单击"线程组"之后,就算建立完成了。效果如下图所示:

    3.    建立HTTP代理服务器

      在节点"工作台"下,建立1个被称作"HTTP代理服务器"的东西,如下图所示:

      单击"HTTP代理服务器"之后,就算建立完成了。效果如下图所示:

    4.    填写"HTTP代理服务器"的表单

      "端口号"写:8080

      这里写"8080",那么接下来设置IE浏览器的端口号也需要写"8080"。该道理和设置Fiddler是一样的,因为我们是用Jmeter作为代理嘛。那么IE浏览器发出的请求,先经过Jmeter,然后再到Web服务器。所以IE浏览器和Jmeter的端口号一致,才能传递请求。

      至此,Jmeter的配置就算是搞定了!!

      那么既然是把Jmeter作为代理,所以需要配置一下浏览器(IE浏览器就可以了)。

    5.    配置IE浏览器

      如下图所示:

      [1]    启动IE浏览器 --> Internet选项

      [2]    连接 --> "局域网设置"

      [3]    去掉选项"自动检测设置

      [4]    "勾选"代理服务器"下属的2个选项,地址写:"127.0.0.1",端口号写"8080"。(此处端口号 == Jmeter端口号)

    6.    返回Jmeter启动测试计划

      单击"启动"这个按钮就可以了

    7.    使用IE浏览器执行访问百度首页的动作

      我们录制一下"访问百度首页"的操作

      当"回车"后,可以观察到:

      [1]   IE浏览器内,访问"http://www.baidu.com/"成功了,页面正常展示

      [2]   Jmeter内,"线程组"这几个字左侧的节点的位置,已经出现了子节点的迹象。

      此时,停止jmeter脚本,然后查看"线程组"的子节点。

      从展开的结构中,可以看到既有访问"http://www.baidu.com/"的动作,也有一些"其它的东西"比如:.PNG的请求、.GIF的请求、.JS的请求、.ico的请求等等等等。

      那么为什么会有这些"其它的东西"呢?

      原因是:打开1个网页是需要浏览器发送很多次"请求"的!!

      [1]   当输入http://www.baidu.com/然后回车,浏览器首先只是发送了1个"请求",去获取http://www.baidu.com/上面的HTML。Web服务器把"响应"发送回给浏览器。

      [2]   浏览器开始分析"响应"中的HTML,发现其中引用了许多其它文件(也就是.PNG、.GIF、.JS、.ico等等等等)。

      [3]   浏览器会自动地再次发送"请求"去获取这些东西:.PNG、.GIF、.JS、.ico。

      [4]   直到全部的文件都下载成功了,"请求"的动作也就停止了,网页才算被显示出来。

      因此,既然我们只需要测试网址"http://www.baidu.com/"对用户请求的承载能力,那么只保留对"http://www.baidu.com/"的这1个请求就算完成任务了。

    8.    修改录制后的测试脚本

      本篇文档最开始,已经说过"那么弊就是你需要对录制完成的脚本再做进一步优化"。

      从上1个章节的描述,我们可以知道仅仅保留"http://www.baidu.com/"这1个请求就可以了。因此我们直接去掉其它不相关的东西,如下图所示:

             

    9.    建立1个监听器

      在节点"测试计划"下,建立1个被称作"查看结果树"的东西,如下图所示:

      当然了你也可以建立"图形结果"、"断言结果"、"聚合报告"、"用表格查看结果"等等其它形式的监听器。每个类型的监听器的作用都是收集性能测试结果,只是呈现结果的样式不同,这个要结合具体的业务来定,或要结合开发人员"希望观察到哪些数据"来定。

      单击"查看结果树"之后,就算建立完成了。效果如下图所示:

    10.    执行1次测试脚本

      切换到"线程组"

      可以看到默认的线程数是"1",循环次数是"1"

      Ramp-Up Period(in seconds)的意思是指"希望在几秒内启动所有的线程"

      执行脚本的操作:Ctrl+R

      在执行脚本前可先执行"清空测试结果"的操作:Ctrl+E

      Question:是否需要先禁用工作台节点下面的"HTTP代理服务器"?

    11.    查看测试结果

      切换到"查看结果树"

      单击右侧列表内的这1个"HTTP请求"

      右侧可以分别查看"取样器结果"、"请求"、"响应数据"TAB下的数据

      从测试结果看,第10章节末尾的Question迎刃而解。(Question:是否需要先禁用工作台节点下面的"HTTP代理服务器"?) 

    12.    20个线程数+循环2次的方法

      切换到"线程组"

      设置线程数写"20",循环次数写"2"

      由于线程数比较少,所以不需要考虑如何设置Ramp-Up Period(in seconds)。

    13.    20个线程+脚本运行60秒

      切换到"线程组"

      设置线程数写"20"

      循环次数写"永远"

      勾选"调度器"->持续时间(秒)写"60"

      由于线程数比较少,所以不需要考虑如何设置Ramp-Up Period(in seconds)。

    (备注:第12、13章节不附图了,可参考《Jmeter-一个完整的接口测试的脚本.doc》

    -end

  • 相关阅读:
    C# ConfigMan.cs
    C# 反序列化JSON
    C#求数组最大值或最大值位置索引
    C#获取DataGridView数据源DataSource类型
    C#动态添加DataGridView列和行
    C# WinForm 检测文件是否被占用
    C#开源组件NPOI处理Excel导入DataTable数据至Sheet
    C# WinForm 扩展指定列宽适应DataGridView显示行数(二)
    C# WinForm 扩展指定列宽适应DataGridView显示行数
    VFP9 对 SqlServer Image字段的图片存取处理
  • 原文地址:https://www.cnblogs.com/musicmovie/p/4242064.html
Copyright © 2011-2022 走看看