原文转自:https://blog.csdn.net/lovesoo...
Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter玲珑轻便且收费,逐步成为了支流的性能测试工具,是每个测试人员都必须要把握的工具之一。
本文为JMeter性能测试残缺入门篇,从Jmeter下载安装到编写一个残缺性能测试脚本、最终执行性能测试并剖析性能测试后果。
运行环境为Windows 10零碎,JDK版本为1.8,JMeter版本为3.3
- Jmeter装置
============
2.1 JDK装置
因为Jmeter是基于java开发,首先须要下载安装JDK (目前JMeter只反对到Java 8,尚不反对 Java 9)
- 官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
- 抉择Java SE 8u151/ 8u152,点击JDK下载
- 装置下载的JDK
- 配置零碎环境变量
2.2 JMeter装置
- 官网下载地址:http://jmeter.apache.org/download_jmeter.cgi
- 下载最新JMeter 3.3版本:apache-jmeter-3.3.zip
- 下载实现后解压zip包
- 启动JMeter
双击JMeter解压门路(apache-jmeter-3.3bin)bin上面的jmeter.bat即可 - 测试实例
========
咱们选取最常见的百度搜寻接口:
3.1 接口地址
http://www.baidu.com/s?ie=utf-8&wd=jmeter性能测试
3.2 申请参数
ie:编码方式,默认为utf-8
wd: 搜索词
3.3 返回后果
搜寻后果,咱们能够通过校验后果中是否含有搜索词wd来判断本次申请胜利或失败。
- JMeter脚本编写
==============
4.1 增加线程组
右键点击“测试计划” -> “增加” -> “Threads(Users)” -> “线程组”
这里能够配置线程组名称,线程数,筹备时长(Ramp-Up Period(in seconds))循环次数,调度器等参数:
线程组参数详解:
- 线程数:虚构用户数。一个虚构用户占用一个过程或线程。设置多少虚构用户数在这里也就是设置多少个线程数。
- Ramp-Up Period(in seconds)筹备时长:设置的虚构用户数须要多长时间全副启动。如果线程数为10,筹备时长为2,那么须要2秒钟启动10个线程,也就是每秒钟启动5个线程。
- 循环次数:每个线程发送申请的次数。如果线程数为10,循环次数为100,那么每个线程发送100次申请。总申请数为10*100=1000 。如果勾选了“永远”,那么所有线程会始终发送申请,一到抉择进行运行脚本。
- Delay Thread creation until needed:直到须要时延迟线程的创立。
- 调度器:设置线程组启动的开始工夫和完结工夫(配置调度器时,须要勾选循环次数为永远)
持续时间(秒):测试持续时间,会笼罩完结工夫
启动提早(秒):测试提早启动工夫,会笼罩启动工夫
启动工夫:测试启动工夫,启动提早会笼罩它。当启动工夫已过,手动只需测试时以后工夫也会笼罩它。
完结工夫:测试完结工夫,持续时间会笼罩它。
因为接口调试须要,咱们临时均应用默认设置,待前面真正执行性能测试时再回来配置。
4.2 增加HTTP申请
右键点击“线程组” -> “增加” -> “Sampler” -> “HTTP申请”
对于咱们的接口http://www.baidu.com/s?ie=utf-8&wd=jmeter性能测试,能够参考下图填写:
Http申请主要参数详解:
- Web服务器
协定:向指标服务器发送HTTP申请协定,能够是HTTP或HTTPS,默认为HTTP
服务器名称或IP :HTTP申请发送的指标服务器名称或IP
端口号:指标服务器的端口号,默认值为80
2.Http申请
办法:发送HTTP申请的办法,可用办法包含GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
门路:指标URL门路(URL中去掉服务器地址、端口及参数后残余局部)
Content encoding :编码方式,默认为ISO-8859-1编码,这里配置为utf-8 - 同申请一起发送参数
在申请中发送的URL参数,用户能够将URL中所有参数设置在本表中,表中每行为一个参数(对应URL中的 name=value),留神参数传入中文时须要勾选“编码”
4.3 增加观察后果树
右键点击“线程组” -> “增加” -> “监听器” -> “观察后果树”
这时,咱们运行Http申请,批改响应数据格式为“HTML Source Formatted”,能够看到本次搜寻返回后果页面题目为”jmeter性能测试_百度搜寻“。
4.4 增加用户自定义变量
咱们能够增加用户自定义变量用以Http申请参数化,右键点击“线程组” -> “增加” -> “配置元件” -> “用户定义的变量”:
新增一个参数wd,寄存搜索词:
并在Http申请中应用该参数,格局为:${wd}
4.5 增加断言
右键点击“HTTP申请” -> “增加”-> “断言” -> “响应断言”
咱们校验返回的文本中是否蕴含搜索词,增加参数${wd}到要测试的模式中:
4.6 增加断言后果
右键点击“HTTP申请” -> “增加”-> “监听器” -> “断言后果”
这时,咱们再运行一次就能够看到断言后果胜利或失败了
4.7 增加聚合报告
右键点击“线程组” -> “增加” -> “监听器” -> “聚合报告”,用以寄存性能测试报告
这样,咱们就实现了一个残缺Http接口的JMeter性能测试脚本编写。
- 执行性能测试
==========
5.1 配置线程组
点击线程组,配置本次性能测试相干参数:线程数,循环次数,持续时间等,这里咱们配置并发用户数为10,持续时间为60s
5.2 执行测试
点击绿色小箭头按钮即可启动测试,测试之前须要点击小扫把按钮革除之前的调试后果。
- 分析测试报告
==========
待性能测试执行实现后,关上聚合报告能够看到:
聚合报告参数详解:
- Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
Samples:申请数——示意这次测试中一共收回了多少个申请,如果模仿10个用户,每个用户迭代10次,那么这里显示100
- Average:均匀响应工夫——默认状况下是单个 Request 的均匀响应工夫,当应用了 Transaction Controller 时,以Transaction 为单位显示均匀响应工夫
- Median:中位数,也就是 50% 用户的响应工夫
- 90% Line:90% 用户的响应工夫
- Min:最小响应工夫
- Max:最大响应工夫
- Error%:错误率——谬误申请数/申请总数
- Throughput:吞吐量——默认状况下示意每秒实现的申请数(Request per Second),当应用了 Transaction Controller 时,也能够示意相似 LoadRunner 的 Transaction per Second 数
- KB/Sec:每秒从服务器端接管到的数据量,相当于LoadRunner中的Throughput/Sec
一般而言,性能测试中咱们须要重点关注的数据有: #Samples 申请数,Average 均匀响应工夫,Min 最小响应工夫,Max 最大响应工夫,Error% 错误率及Throughput 吞吐量。
- 源码下载
========
至此,咱们应用JMeter实现了一个残缺的Http接口性能测试流程,从脚本编写,执行到最终后果剖析。
残缺的脚本源码下载链接: https://pan.baidu.com/s/1eS90cVo 明码: st15