共计 3206 个字符,预计需要花费 9 分钟才能阅读完成。
原文转自: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