目前最新版本发展到5.0版本,须要Java7以上版本环境,下载解压目录后,进入\apache-jmeter-5.0\bin\,双击ApacheJMeter.jar文件启动JMemter。apache
一、建立测试任务浏览器
添加线程组,右击测试计划,在快捷菜单单击添加-》线程(用户)-》线程组。设置线程组主要包含三个参数:线程数、Ramp-Up、循环次数。服务器
线程数:设置虚拟用户数。一个虚拟用户占用一个进程或线程。线程数就至关于虚拟用户数。并发
Ramp-Up:设置的线程数启动时长,单位为秒。若是线程数为100,准备时长为20秒,那么须要20秒启动100个线程,平均每秒启动5个线程。工具
循环次数:每一个线程发送请求的个数。若是线程数为100,循环次数为2,那么每一个线程发送2次请求,总请求数为100*2=200次。若是勾选了“永远”复选框,那么全部线程会循环发送请求,直到手动单工具栏中止按钮,或者设置的线程运行时间结束才会中止运行。post
此次针对接口测试,默认都为1就行。性能
二、添加get的HTTP请求测试
右击线路组,在快捷菜单单击添加-》取样器-》HTTP请求。编码
协议:向目标服务器发送HTTP请求时的协议,能够是HTTP或HTTPS,默认不填为HTTP。spa
服务器IP和端口:输入目标服务器地址和端口号。
内容编码:默认值为iso8859
方法:针对请求方法选择
路径:输入请求目标地址
参数:录入查询的参数数值
三、添加post的HTTP请求
方法同上,只是请求方法不一样,此次改用POST传递参数向服务器及POST请求的URL地址。
根据开发提供的接口文档,参考传入参数选项,录入进去。
四、添加断言
分别右击发布会查询信息和添加发布会信息,添加-》断言-》响应断言
此次选择响应文,而后录入须要匹配的数据。
五、添加察看结果树
右击发布系统项目,单击添加-》监听器-》察看结果树,运行后:
成功显示绿色标志,失败显示红色标示,能够查看到每一个用例返回的数据。
六、添加用表格察看结果
能够更详细查看到耗时及字节大小,结果状态,用例信息。
因为JMeter支持录制不够好,如今经常使用的方法是使用Badboy录制,生成JMeter脚本,而后用JMeter打开,添加监听器来查看结果。
双击软件图标开启badboy便可看到如下界面:
一、开始录制
在地址栏(图中用红色框住部分)中输入你须要录制的Web应用的URL,并点击红圆点按钮开始录制。开始录制后,你能够直接在Badboy内嵌的浏览器(主界面的右侧)中对被测Web应用进行操做,全部的操做都会被记录在主界面左侧的编辑窗口中:以下图所示
将脚本导出为jmeter
线程数表明发送请求的用户数目,Ramp-up period(inseconds)表明每一个请求发生的总时间间隔,单位是秒。假如个人请求数目是5,而Ramp-up period(inseconds)参数是10,那么每一个请求之间的间隔就是 10/5,也就是2秒。若是Ramp-up period(inseconds)设置为0就表明并发请求。
最后,清除循环次数的复选项“永远”,而后输入1。这个值是告诉JMeter你的测试重复多少次。若是你输入1,那么JMeter只会运行一次测试。要不停的运行你的测试计划,选中“永远”复选框。
以下图摸拟1000个并发用户数量运行一次登陆测试。
二、添加监控
这个主要是用来查看测试结果用的,能够以不一样形式展示,这里举例说明添加监听器:用表格查看结果、聚合报告和图形报告thread Group->添加->监听器->聚合报告(图形报告、用表格查看结果)以下图所示:
程序运行完成之后,就能够查看相应的测试结果这里以1000个线程组瞬时并发为例获得以下报告:
上图表参数含义以下:
一、样本数目是总共发送到服务器的请求数。
二、最新样本是表明时间的数字,是服务器响应最后一个请求的时间。
三、吞吐量是服务器每分钟处理的请求数。
四、平均值是总运行时间除以发送到服务器的请求数。
五、中间值是表明时间的数字,有一半的服务器响应时间低于该值,而另外一半高于该值。
六、偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
能够看出当1000人瞬时并发时平均响应时间为1630ms,吞吐量为3,940.887/分钟,平均响应中值为230ms。
图表含义说明以下:
Label:说明是请求类型,如Http,FTP等请求。
#Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。
Average:也就是图形报表中的平均响应时间,是总运行时间除以发送到服务器的请求数。
Median:也就是图形报表中的中间值50%用户响应时间,有一半的服务器响应时间低于该值而另外一半高于该值。
90%line:是指90%请求的响应时间比所得数值还要小,也就是90%用户的响应时间。
Min:是表明时间的数字,是服务器响应的最小时间。
Max: 是表明时间的数字,是服务器响应的最大时间。
Error%:请求的错误百分比。本次测试中出现错误的请求的数量/请求的总数。
Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。默认状况下表示每秒完成的请求数。
KB/sec:每秒从服务器端接收到的数据量。
要所得的数据为正确,聚合报告error%必须为0.00%,不然说明用户没有所有经过测试,这里获得平均响应时间1630ms,平均响应中中值为230ms
上图Error出现错误,所得的数据不是准确,从日志和表格来看中间过程发生链接请求超时,在响应时间内,接收请求数响应时间为0。以下图所示:
在测试过程当中,平均响应时间、吞吐量、并发链接数是咱们性能测试的一个重要衡量指标,可是在测试中,特别是在聚合报告中,得出的90%Line等同于该用户提出的90%响应时间,这个数值对咱们性能测试分析也颇有参考价值。90%响应时间是说在发送的请求中,90%的用户响应时间都比获得的数值上要短,同时说明,一个系统在应用时,90%的用户响应时间都能达到这个数值,那么就为系统性能分析提供了很好的参考价值。
若是把线程数改成500并发链接请求,结果Error不会出现错误,所获得性能测试数据准确。
总之,须要不断的调优对比数据,接近最佳状态,肯定负载达到多少并发数量。