压力测试jmeter入门教程

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

总而言之,jmeter就是一款压力测试的软件。

1.下载/安装 jmeter

首先下载jdk,下载网站:http://www.oracle.com/technetwork/java/javase/downloads/index.html ,这里我选择的是Java Platform (JDK) 8u111 / 8u112,下载完成安装。

然后下载jmeter http://jmeter.apache.org/download_jmeter.cgi

下载完成解压,打开解压文件夹下进入bin,双击ApacheJMeter.jar就可以打开jmeter

2.开始压测

(1)新建线程组,即新建一个压测项目,右击测试计划,操作如图:


线程组的参数设置:线程数指的是用户数,Ramp-Up单位是秒,如果线程数是100,Ramp-Up设置为1,循环设置2(表示每个用户请求多少次),则100/1=0.01秒,即线程与线程的切换时间的0.01秒,表示用户A(A线程)访问2次必需在0.01秒内发出请求,0.01秒后换用户B(线程)请求。参数设置如图:


(2)新建http请求

右击线程组,依次选择:添加-》Sampler-》HTTP请求,参数设置:服务器名称或IP,直接输入域名;端口号不需要设置;路径填写访问的路径,不填写表示直接访问域名,如果是get请求参数可以直接写到路径,比如open/index/shop?name=test&age=22,如果是post,则点击Parameters选项卡下面的“添加”进行参数的添加,记得任何填写完都记得点击保存,操作如图:


(3)添加结果监控

右击线程组,依次选择:添加-》监听器-》用表格察看结果,再添加:添加-》监听器-》察看结果树,再添加:添加-》监听器-》聚合报告,一般看这3个,其他可以按个人添加。添加完毕,可以开始压测,点击绿色的三角形开始压测按钮,或者右击线程组-》start。执行完毕,察看聚合报告,参数说明:

label:请求说明,如果是请求不同的路由,这里会显示路由的地址

samples:请求的次数

average:平均请求时间(毫秒)

median:请求时间小到大排序,排在中间的那个时间

90%Line:请求时间小到大排序,排在90%的那个时间(一般以这个为指标,比如要求这个数不能超过1000,即一秒,90%的请求不能超过1秒)

min:最小的请求时间

max:最大的请求时间

error:请求失败的比率

throughput:吞吐量

参数如图:


(4)随机测试多个url

一般我们不会只是压测一个url,希望随机压测多个url,这是我们可以使用jmeter的StringFromFile函数,在jmeter工具栏依次点击:选项-》函数助手对话框-》选择_StringFromFile,然后在输入文件路径后面输入我们本地一个记录多个需要压测url的文件,必须是bat结尾,这里我的文件在F:url.bat,路径可自定义,我这里填写F:url.bat。然后编辑F:url.bat文件,填写需要压测的url,不需要填写域名,因为域名已经在HTTP请求那里设置了,以换行作为分隔符,StringFromFile的设置如图:


url.bat编辑的内容如下:

/open/index/shop?zb_id=1Zmjqt7FZ5k
/open/index/goods_list?zb_id=1Zmjqt7FZ5k
/open/index/detail2/52708/375778?zb_id=1Zmjqt7FZ5k
保存url.bat,然后再按上图所示,在函数助手点击生成,会生成一个函数字符串,复制函数字符串,在HTTP请求中的路径填写复制的函数字符串,如图:


点击保存,再点击上图所示的清除按钮,清除上一次的监听结果,然后点击开始就可以发现是随机压测不同的url了。

(5)晋级随机压测url

上面说的随机压测url,局限是只能压测get请求的url,不能压测post请求,因为post请求需要的参数上面的方法设置不了,还有实际的情况是:有时候还需要压测需要登录的页面。

首先解决需要登录的问题。

设置cookie。右击线程组,依次选择:添加-》配置元件-》HTTP Cookie管理器,在管理器添加登录状态的cookie就可以了。

解决post请求。这时就不能用上面的方法,但是需要压测多个页面,创建多个线程组也不合理,这时需要使用jmeter的录制功能。即你用时浏览器访问你需要压测的多个url,jmeter录制下来,包括请求url时的所有参数,自动添加到线程组下面,这时点击开始压测就会随机压测刚才录制下来的url。

录制准备。右击工作台。依次选择:添加-》非测试元件-》HTTP代理服务器,设置参数:端口=8888(不和其他程序冲突),目标控制器=线程组,设置如图:


设置完成点击启动,然后去浏览器设置代理,IP:127.0.0.1,端口:8888,然后访问需要压测的url,jmeter就会录制下来,如图:


会发现很多css、js、图片也录制进来了,需要手动把他们删除,然后点击开始压测,就会发现可以压测得到post请求的url

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值