2024年最新最全面的JMeter接口压力测试

一、JMeter基础知识介绍和压测实操


1、JMeter基本介绍和使用场景

1)压测不同的协议和应用

  • Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
  • SOAP / REST Webservices
  • FTP
  • Database via JDBC
  • LDAP 轻量目录访问协议
  • Message-oriented middleware (MOM) via JMS
  • Mail - SMTP(S), POP3(S) and IMAP(S)
  • TCP等等

2)使用场景及优点

  • 功能测试
  • 压力测试
  • 分布式压力测试
  • 纯java开发
  • 上手容易,高性能
  • 提供测试数据分析
  • 各种报表数据图形展示

2、window环境快速安装JMeter5.x

强制依赖: JDK

官方下载地址: jmeter.apache.org/download_jm…

官方文档地址: jmeter.apache.org/usermanual/…

3、JMeter核心目录文件介绍

bin目录: 核心可执行文件以及核心配置文件

  • jmeter.bat: windows启动文件:
  • jmeter: mac或者linux启动文件:
  • jmeter-server.bat:window分布式压测使用的启动文件
  • jmeter.properties: 核心配置文件 extras目录: 插件拓展的包

lib目录: 核心的依赖包

  • ext核心包
  • junit单元测试包

4、JMeter中英文切换

方式一: 控制台修改(临时有效)

menu -> options -> choose language

 

方式二: 配置文件修改(永久有效)

JMeter bin目录 -> jmeter.properties

 

5、使用SpringBoot 2.0快速编写API测试接口

 

复制代码

@RestController @RequestMapping(value = "userController") public class UserController { @GetMapping(value = "getUserList") public List<String> getUserList() { return Arrays.asList("tom","marry","jack"); } @PostMapping(value = "login") public Map<String,Object> login(String name,String pwd){ Map<String,Object> map = new HashMap<>(); map.put("name",name); if ("123".equals(pwd)){ map.put("status",0); }else{ map.put("status",-1); } return map; } }

6、创建Jmeter测试计划,快速压测接口

1)创建一个setup线程组

 

2)设置setup线程组的名称以及请求线程数、请求时间、请求循环次数

 

3)创建一个http请求

 

4)编写http请求的url

 

5)添加察看结果树

 

6)设置结果树名称并运行该线程组、查看结果树

 

二、Jmeter核心组件介绍和实操


1、JMeter基础功能组件介绍

1)线程组Thread Group(一个线程组里可以添加多个取样器)

 

  • Name:线程组名称
  • Comments:对线程组的描述
  • Number of Threads(users):虚拟用户数,一个虚拟用户占用一个进程或线程
  • Ramp-Up Period(in seconds):准备时长,全部线程启动的时长,比如100个线程,启动时长20s,则表示20秒内100个线程都要启动完成,每秒启动5个线程
  • Loop Count:循环次数,每个线程发送的次数,假如该值为5,100个线程,则会发送500次请求,可以勾选永远循环

2)取样器Sampler(以http请求为例)

 

  • Name:取样器名称
  • Comments:对取样器的描述
  • Protocol[http]:协议名称,默认是http协议
  • Server Name or IP:服务器名称或IP,请求的目标服务器名称或IP地址
  • Port Number:端口号,默认是80
  • Method:方法请求类型
  • Path:服务器请求url

3)监听器Listener(以察看结果树为例)

 

  • Name:结果树名称
  • Comments:对结果树的描述
  • Text:请求结果列表
  • Sampler result:取样器结果
  • Request:请求,包括请求头与请求体
  • Response data:响应数据,包括响应头与响应体

2、JMeter的断言基本使用

1)给http请求添加响应断言

 

 

  • Name:断言名称
  • Comments:对断言的描述
  • Apply to:应用范围,Main sample only表示仅对当前父取样器 进行断言,一般是一个请求,如果发一个请求会触发多个请求,则就勾选sub sample(比较少用)
  • Field to Test:要测试的响应字段,Text Response(响应文本),即响应的数据,比如json等文本,Response Code(响应代码),http的响应状态码,比如200,302,404等,Response Message(响应信息),http响应代码对应的响应信息,例如:OK, Found,Response Header(响应头),Http的响应头
  • Pattern Matching Rules:模式匹配规则,Contains(包括),包含在里面就成功,Matches(匹配),响应内容完全匹配,不区分大小写,equals,完全匹配,区分大小写

2)断言结果监听器

 

断言失败,查看结果树任务,结果颜色标红(通过结果树里面双击不通过的记录,可以看到错误信息)

3)每个sampler下面可以加单独的结果树,然后同时加多个断言,最外层可以加个结果树进行汇总

3、JMeter实战之压测结果聚合报告分析

新增聚合报告

 

 

  • Lable:sampler名称
  • #Samples:一共发出去多少个请求,例如10个用户,循环10次,则是100
  • Average:平均响应时间
  • Median:中位数,也就是50%用户的响应时间
  • 90% Line:90%用户的响应时间不会超过该时间
  • 95% Line:95%用户的响应时间不会超过该时间
  • 99% Line:99%用户的响应时间不会超过该时间
  • Min:最小响应时间
  • Maximum:最大响应时间
  • Error%:错误的请求的数量/请求的总数
  • Throughput:吞吐量,默认情况下表示每秒完成的请求数(Request per Second),可类比为qps
  • Received KB/sec:每秒接收数据量
  • Sent KB/Sec:每秒发送数据量

4、JMeter压测脚本JMX讲解

 

复制代码

<?xml version="1.0" encoding="UTF-8"?> <jmeterTestPlan version="1.2" properties="5.0" jmeter="5.1.1 r1855137"> <ha

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值