Jmeter性能测试工具-详细使用教程

一、 Jmeter的主要功能模块

1.1.1录制脚本

1.首先新建非测试原件-http代理服务器

Jmeter性能测试工具-详细使用教程_第1张图片

2.再新建个线程组

Jmeter性能测试工具-详细使用教程_第2张图片

3.然后编辑http代理服务器内容(红框内为要更改的地方)

端口:选择未被占用的即可

目标控制器:录制脚本存放的地方(选择刚才新建的线程组即可)

分组:可分可不分,分的话就是每个脚本独自存放,不分就是全部都在一起

Jmeter性能测试工具-详细使用教程_第3张图片

4.网络代理设置

地址:jmeter默认代理地址是127.0.0.1

端口:跟刚才在jmeter里http代理服务器的端口保持一致即可

地址下面过滤条件,根据需求来写,可写可不写

(一定要记得开启之后点击保存,最好多点击几下)

Jmeter性能测试工具-详细使用教程_第4张图片

5.6点击启动就可以开始录制了

Jmeter性能测试工具-详细使用教程_第5张图片

6.点击ok

Jmeter性能测试工具-详细使用教程_第6张图片

7.最后在弹窗里输入自定义名称,再进行相关操作就可以,点击停止之后,脚本会保存在http代理服务器中填写的目标控制器中

Jmeter性能测试工具-详细使用教程_第7张图片

1.1.2线程组

1、一个测试计划的开始

2、测试计划中所有的元件都必须在某个线程组下

3、线程组决定了jmeter执行测试计划的线程数

Jmeter性能测试工具-详细使用教程_第8张图片

线程组的主要作用:

Ø 设置线程数

Ø 设置Ramp-UP时间(多长时间内运行当前线程数)

Ø 设置迭代次数

Ø 备注:每个线程组都是独立计划,互不干扰,多个线程组模仿对服务器的并发访问

Ø 每台设备建议线程数不超过1000

Jmeter性能测试工具-详细使用教程_第9张图片

循环测试为永远或者为-1时,调度器才能够生效

Ramp-UP时间(秒):

Ø 线程组所有的线程数从启动-运行-释放的总时间

Ø 当等于0时,表示瞬间加压,启动所有线程时间无线趋近于0,实际性能测试中不能将该时间设置为0,应尽量设置多一些时间

Ø 假设有100个线程数,点击率10/s,ramp-up=100/10秒

二、 Jmeter常见的功能

2.1.1http请求

Jmeter性能测试工具-详细使用教程_第10张图片

Keepalive是jmeter与服务器的通信方式-表示长连接,真正做性能测试时,不建议进行勾选

POST的multipart/form-data:需要上传文件的时候进行勾选

文件上传(mime)的常见类型:

Jmeter性能测试工具-详细使用教程_第11张图片

2.1.2http请求默认值(配置元件当中)

作用:http请求的前置操作,请求所需的协议、服务器或IP地址、端口号以及请求方法和请求路劲

Jmeter性能测试工具-详细使用教程_第12张图片

2.1.3http的信息头管理器

作用:存放http的请求头部信息和http请求默认值用法大致相同,优先级也相同

Jmeter性能测试工具-详细使用教程_第13张图片

2.1.4Jmeter的参数化方式

1.用户自定义变量(软件测试人员,根据自己的测试场景,添加自定义变量,通过”${变量名}”进行调用好的变量)

Jmeter性能测试工具-详细使用教程_第14张图片

拓展:自定义变量也可以通过函数助手生成

2.用户参数(前置处理器)

线程组下的用户参数优先级高于测试计划里的用户自定义变量

Http请求下的用户参数优先级高于线程组下的用户自定义变量

若有重名参数,谁的优先级高用谁的

若用户参数和用户自定义变量重名且在同一级下,则优先取值用户参数的值

因为配置元件先执行前置处理器

Jmeter性能测试工具-详细使用教程_第15张图片

3.csv数据文件设置(配置元件)

Jmeter性能测试工具-详细使用教程_第16张图片

4.CSVread函数助手

Jmeter性能测试工具-详细使用教程_第17张图片

2.1.5定时器

1.同步定时器(Synchronizing Timer集合点)

Jmeter性能测试工具-详细使用教程_第18张图片

2.固定定时器(思考时间)

线程数停留多少时间发送请求

Jmeter性能测试工具-详细使用教程_第19张图片

2.1.6响应断言

测试过程中一般断言响应体内容是否包含响应成功信息,通常与“断言结果”(监听器)连用

Jmeter性能测试工具-详细使用教程_第20张图片

2.1.7后置处理器

1.Json提取器

调试取样器:用来查看自定义变量或者是取值是否正确

Jmeter性能测试工具-详细使用教程_第21张图片

Jmeter性能测试工具-详细使用教程_第22张图片

2.正则表达式提取器

Jmeter性能测试工具-详细使用教程_第23张图片

2.1.8JDBC取样器

JDBC配置元件

Jmeter性能测试工具-详细使用教程_第24张图片

JDBC取样器

Jmeter性能测试工具-详细使用教程_第25张图片

三、分布式加压—压力测试

3.1.1.1 Jmeter分布式加压

Jmeter 支持分布式压测,将需要模拟的大量并发用户数分发到多台压力机,使 Jmeter 拥有更大的负载量,满足真实业务场景(高并发场景)。

1) 为什么要做分布式

Jmeter 本身的局限性

一台压力机的 Jmeter 默认最大支持 1000 左右的并发用户数(线程数),再大的话,容易造成卡顿、无响应等情况,这是受限于 Jmeter 其本身的机制和硬件配置(内存、CPU等)

由于 Jmeter 是 Java 应用,对 CPU 和内存的消耗较大,在需要模拟大量并发用户数时,单机很容易出现JAVA内存溢出的错误,导致测试脚本本身就有瓶颈

2) 模拟测试场景

l 测试 3000并发的场景,但单机只能支持 1000 并发无法达到 3000

l 通过分布式(3机器起)可以模拟 3000并发

3) 分布式原理

Jmeter性能测试工具-详细使用教程_第26张图片

原理如下:

l Master 是控制机,Slaves 是多个压力机,Target 是被测系统

l 分布式测试中,Master 通过命令行将测试脚本分发给所有 Slave

l Slave 不需要启动 Jmeter GUI,通过 CLI 模式执行测试,从而降低GUI占用的性能

l Slave 执行完后,会把结果回传给 Master

l Master 收集所有 Slave 的结果并汇总成一个结果集

注意

l 压力机也可以叫:负载机、代理机、执行机、奴隶机、肉鸡....各种各样的名字,但他们都是 Slave

l Master 也可以执行测试脚本,也可以不执行只负责管理

Jmeter性能测试工具-详细使用教程_第27张图片

Master

l 控制机

l 运行JMeter GUI(控制测试)的机器

Slave

l 压力机

l 运行 jmeter-server 的机器

l 它从 GUI 接收命令并将请求发送到目标系统

Target

l 需要进行压力测试的 Web 服务器

实现分布式的前提条件

控制机和压力机的 jmeter 要一致

具体要求:

jmeter 版本要一致

jdk 主版本要一致(1.7、1.8...)

jmeter 脚本中,csv 文件要一致

jmeter 的插件要一致

同一局域网,防火墙开放端口

4) 压力机配置操作

Jmeter性能测试工具-详细使用教程_第28张图片

Jmeter性能测试工具-详细使用教程_第29张图片

5) 控制机配置步骤

Jmeter性能测试工具-详细使用教程_第30张图片

6) 启动远程压力机(服务器)

Jmeter性能测试工具-详细使用教程_第31张图片

7) 分布式压测注意事项

l 如果并发较高,建议将控制机设置为只启动测试脚本和收集汇总测试结果

l 分布式测试中,如果 1S 发送 100 个模拟请求,有 5 个压力机,那么需要将脚本的线程数设置为 20,否则模拟请求数会变成 500,和预期结果相差太大

l 只需要修改控制机的脚本,启动压力机之后,压力机执行的就是最新的脚本

四、Jmeter生成测试报告

打开Jmeter的安装目录找到bin,输入cmd,进入Jmeter的CLI命令行界面,然后输入一下命令:

jmeter -n -t E:\jdbc_mysql.jmx -l D:\result/report.jtl -e -o D:\report

参数介绍:

-n 非GUI模式执行JMeter

-t 测试计划保存的路径及文件名

-l 保存生成测试结果的文件

-e 测试结束后,生成测试报告

-o 存放生成测试报告的路径

你可能感兴趣的:(jmeter,测试工具)