Jmeter是一款性能测试工具,是Apache开源组织的一款纯Java开发的桌面级应用
本文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整性能测试脚本、最终执行性能测试并分析性能测试结果。
jmeter简介
- 多线程框架–支持多并发操作
- 用于对服务器模拟负载
- 支持web、数据库、FTP服务系统的性能测试
- 开源、纯Java,可二次定制化开发
1、Jmeter安装
1.1、JDK安装
由于jmeter是Java开发的,所以需要下载安装jdk,
-
官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
-
选择Java SE 8u151/ 8u152,点击JDK下载
-
安装下载的JDK
-
配置系统环境变量
2.2、jmeter安装
1.官网下载地址:http://jmeter.apache.org/download_jmeter.cgi
2.下载最新JMeter 5.2.1版本:apache-jmeter-5.2.1.zip
3.下载完成后解压zip包
4.启动方式:解压后进入Jmeter的bin目录,windows下双击jmeter.bat文件启动,Linux下执行Jmeter.sh文件
2、Jmeter脚本编写
2.1、添加线程组
线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件都必须在某个线程下。所有的任务都是基于线程组。
右键点击“测试计划” -> “添加” -> “Threads(Users)” -> “线程组”
1、setUp线程组:
一种特殊类型的ThreadGroup,用于在执行常规线程组之前执行一些必要的操作。在“setup thread group”下提到的线程行为与普通线程组完全相同。不同的是执行顺序—它会在普通线程组执行之前被触发。
2、tearDown线程组:
一种特殊类型的ThreadGroup,用于在执行常规线程组完成后执行一些必要的操作。在“teardown thread group”下提到的线程行为与普通线程组完全相同。不同的是执行顺序—它会在普通线程组执行之后被触发。
3、线程组:
这个就是我们通常使用的线程。通俗的讲,一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每个线程之间都是隔离的,互不影响的。一个线程的执行过程中,操作的变量,不会影响其他线程的变量值。
在线程组界面中可以设置以下数据,进行控制线程组:
线程组参数详解:
1、取样器错误后要执行的动作:
继续:忽略错误,继续执行
Start Next Thread Loop: 忽略错误,线程当前循环终止,执行下一个循环。
停止线程:当前线程停止执行,不影响其他线程正常执行。
停止测试:整个测试会在所有当前正在执行的线程执行完毕后停止
Stop test now:整个测试会立即停止执行,当前正在执行的取样器可能会被中断。
线程数:线程数也就是并发数,每个线程将会完全独立的运行测试计划,互不干扰。多个线程用于模仿对服务器的并发访问。
ramp-up period:用于设置启动所有线程所需要的时间
循环次数:该项设置线程组在结束前每个线程循环的次数,如果次数设置为1,那么JMeter在停止前只执行测试计划一次。
Delay Thread creation until needed:直到需要时延迟线程的创建。
调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
持续时间(秒):测试持续时间,会覆盖结束时间
启动延迟(秒):测试延迟启动时间,会覆盖启动时间
启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
结束时间:测试结束时间,持续时间会覆盖它。
2.2、添加http请求
右键点击“线程组” -> “添加” -> “Sampler” -> “HTTP请求”
我们对于访问百度www.baidu.com参照下图填写
Http请求主要参数详解:
Web服务器
协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP
服务器名称或IP :HTTP请求发送的目标服务器名称或IP
端口号:目标服务器的端口号,默认值为80
2.Http请求
方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
路径:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分)
Content encoding :编码方式,这里配置为utf-8
2.3、添加结果树
右键点击“线程组” -> “添加” -> “监听器” -> “察看结果树”
这时,我们运行Http请求,修改响应数据格式为“HTML Source Formatted”,可以看到本次搜索返回结果页面标题为”斗米网-高效的全职、兼职招聘服务平台“。