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

一、 Jmeter的主要功能模块

1.1.1录制脚本

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

2.再新建个线程组

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

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

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

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

4.网络代理设置

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

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

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

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

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

6.点击ok

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

1.1.2线程组

1、一个测试计划的开始

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

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

线程组的主要作用:

Ø 设置线程数

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

Ø 设置迭代次数

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

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

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

Ramp-UP时间(秒):

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

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

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

二、 Jmeter常见的功能

2.1.1http请求

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

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

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

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

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

2.1.3http的信息头管理器

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

2.1.4Jmeter的参数化方式

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

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

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

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

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

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

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

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

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

4.CSVread函数助手

2.1.5定时器

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

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

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

2.1.6响应断言

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

2.1.7后置处理器

1.Json提取器

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

2.正则表达式提取器

2.1.8JDBC取样器

JDBC配置元件

JDBC取样器

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

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) 分布式原理

原理如下:

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

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

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

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

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

注意

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

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

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) 压力机配置操作

5) 控制机配置步骤

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

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 存放生成测试报告的路径

  • 41
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值