Apache Jmeter3.0 HTTP压力测试之小试牛刀
  

老眼 发表于 2016-5-21 11:10

1.jmeter简介

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域,是压力测试的首选的免费开源的软件。

说到这里不得不说起另外一款web压力测试工具loadrunner,loadrunner是一款商业性质的压力测试工具自定义测试方面相比Jmeter差了很多,Jmeter是一款轻量型的,对日常的压力测试工作Jmeter完全可以胜任。


2.jmeter功能

它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等


3.工具地址:

http://jmeter.apache.org/

该工具无需安装,解压后到bin目录中运行ApacheJMeter.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

喜欢这篇分享吗?喜欢就给楼主打点赏吧!点个赞也是极大的鼓励!

发帖可获得5S豆;若您的分享被加精或推荐优秀等,将获得更多S豆奖励,了解更多S豆奖励信息

完善手机号和公司名称,让服务更省心更便捷!立即完善

×
有话想说?点这里!
可评论、可发帖

本版热帖

本版达人

新手31671...

本周提问达人