1.jmeter简介 某公司 JMeter是某公司组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域,是压力测试的首选的免费开源的软件。 说到这里不得不说起另外一款web压力测试工具loadrunner,loadrunner是一款商业性质的压力测试工具自定义测试方面相比Jmeter差了很多,Jmeter是一款轻量型的,对日常的压力测试工作Jmeter完全可以胜任。
2.jmeter功能 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等
3.工具地址: http://jmeter.apache.org/ 该工具无需安装,解压后到bin目录中运行某公司JMeter.jar即可(前提是你自己的电脑已提前安装了JAVA环境,要求jvm7.0及以上的版本) ![]()
运行后,jmeter会根据你自己系统的语言自动识别语言格式,如果需要修改为 英文,直接--选项---选择语言---英语 就行了 ![]()
4.使用jmeter进行一次web压力测试 (1)第一步需要添加一个线程组 ![]()
(2)修改新添加的线程组(用户) 线程组告诉Jmeter要模拟用户的数量(线程数)、每个用户开始的延时是多少(例如,如果你进入一个上升周期5秒,JMeter会完成启动你的所有用户通过5秒结束。所以,如果我们有5用户和5秒的上升时间,那么用户之间的延迟会是1秒(5用户/ 5秒= 1用户/秒)。如果将值设置为0,那么JMeter会立即开始你的所有用户)、用户访问循环的次数 ![]()
(3)现在有了线程组(用户),就要添加用户要执行的任务了。在线程组中右击---选择“添加”---配置元件----HTTP请求默认值(http request defaults) ![]()
修改HTTP请求默认值,所有的HTTP请求将被发送到该相同的Web服务器,我们定义请求服务器为:www.lybbn.cn 注意: HTTP请求默认元素不告诉JMeter发送HTTP请求。它只是定义了一个默认值,后面的【HTTP请求的元素】会调用它 ![]()
(4)如果想要使线程组中的每个用户都有自己的cookie的话,还需要添加 HTTP COOKIE管理器 添加HTTP cookie管理器,只需选择线程组,并选择添加→配置元素→HTTP Cookie管理器 ![]()
只需要添加该HTTP cookie 管理器就行了,可不配置其他 ![]()
(5)接下来添加(HTTP请求)HTTP Requests,你就可以来定义真正要测试的页面是哪些了 这里我们以 http://www.lybbn.cn http://www.lybbn.cn/data/datas.php?yw=8 两个链接为例(需要添加两个HTTP请求) 右击线程组----选择“Sampler”---选择 "HTTP 请求(HTTP Request)" ![]()
HTTP 请求中,设置"路径"填写 ”/“ (表示请求http://www.lybbn.cn首页),服务器名称或IP不用填写,因为你在HTTP 默认请求值中已经写过了 ![]()
接下来我们添加第二个HTTP请求,设置“路径” 填写 “/data/datas.php”,服务器名称或IP同样不用填写。但是因为我们测试的是带有参数的 动态网址,需要添加参数:在Parameters中添加我们的?号之后的参数即可yw=8 ,如果为静态页面直接在路径中填写该静态页面即可,不需要额外添加参数 ![]()
(6)其实现在我们就可以发送压力测试了,但是我们还希望监控发送压力测试的监视器,怎么办 接下来我们还需要 右击线程组---选择“监听器”-----图形结果(Graph Results) ![]()
结果如下: ![]()
接下来就可以发动压力测试了 ![]()
压力测试结果: ![]()
图形结果展示解释: 样本数目----总共发送到服务器的请求数 最新样本----代表的是时间毫秒,是服务器响应最后一个请求的时间 吞吐量----服务器每分钟处理的请求数 平均----总运行时间除以发送到服务器的请求数 中值----代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值 偏离----服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布(偏离值越小代表你服务器越稳定)
当然你还可以添加其他的监听器来展示你压力测试所得到的结果,常见的监听器还有“察看结果树”、“聚合报告” 右击线程组---添加---监听器---“察看结果树” 和 “聚合报告” ![]()
上图为“察看结果树”从中你可以看到具体请求的HTTP header 和服务器响应的数据
![]()
上图为“聚合报告”,具体表格参数解释: Label----请求类型,对应在测试计划下填写的请求名称 Samples----当前发送到服务器的请求总数 Average----平均响应时间,计算方法是总运行时间除以发送到服务器的总请求数 Median----中值,也就是50%用户的响应时间 90%line----90%用户请求的响应时间值 Min----服务器响应的最短时间 Max---- 服务器响应的最长时间 Error%----请求返回错误的百分比 Throughput----服务器每单位时间处理的请求数,对应图形报表中的吞吐量 KB/sec---- 每秒钟请求的字节数
(7)jmeter不会自动保存你的测试计划的,需要你手动的保存,这样下次在测试时你只需要重新打开它,然后修改你的参数即可 ![]()
5.结束语 jmeter还有很多功能,上面介绍的只是其中的一个功能罢了,比如HTTPS测试、HTTP用户登录测试等等。Jmeter在我们日常IT工作过程中是个不错的工具,它可以帮助我们测试某公司AD负载均衡时的服务器负载的功能测试,也可以帮我们完成日常工作中网站的压力测试。甚至可以成为一款DOS攻击的工具,如针对某一个发动无数连接的请求。还没有对自己的网站做dos防护的童鞋们赶紧行动起来吧,或许某个人之前就用过这款工具对你的网站发动过DOS攻击。 Ok,关于jmeter我们先讲到这里,后续我会接着分享 转载来源:www.lybbn.cn |