Jmeter怎么做接口测试/性能测试/压力测试(步骤)

article/2025/11/7 11:18:04

目录

JMeter接⼝测试流程详解

1、Jmeter简介

2、Jmeter安装

3、设置Jmeter语⾔为中⽂环境

4、Jmeter主要元件

5、Jmeter元件的作⽤域和执⾏顺序

6、Jmeter进⾏接⼝测试流程

7、Jmeter进⾏接⼝测试流程步骤详解

8、总结

JMeter性能测试的步骤?

第一步:添加对应的组别

第二步:添加对应的接口

第三步:设置性能目标指数

第四步:添加报告,以及设置结果标准

第五步:执行脚本

JMeter压力测试步骤(Jmeter压力测试使用流程)

使用流程

1.创建线程组

2.添加取样器

3.添加监听器

4.查看结果

聚合报告各个参数意义

重点:配套学习资料和视频教学


JMeter接⼝测试流程详解

1、Jmeter简介

Jmeter是由Apache公司开发的⼀个纯Java的开源项⽬,即可以⽤于做接⼝测试也可以⽤于做性能测试。Jmeter具备⾼移植性,可以实现跨平台运⾏。Jmeter可以实现分布式负载。

Jmeter采⽤多线程,允许通过多个线程并发取样或通过独⽴的线程对不同的功能同时取样。Jmeter具有较⾼扩展性。

2、Jmeter安装

1、安装JDK,必须JDK1.7以上的版本,推荐1.8的版本3、配置Jmeter的环境变量。

(1) 新增变量:

JMETER_HOME:D:\apache-jmeter-5.2.1

(2) 在CLASSPATH变量的最前⾯加⼊如下变量:

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

(3)在PATH变量的最前⾯加⼊如下变量:

%JMETER_HOME%\bin;

(3)进⼊D:\apache-jmeter-5.2.1\bin,双击jmeter.bat,或在dos窗⼝输⼊jmeter命令打开jmeter界⾯,安装成功。

3、设置Jmeter语⾔为中⽂环境

1、临时设置

Jmeter菜单栏选择OptionsàChoose LanguageàChinese (Simplified)这种⽅法,重启软件后⼜变为英⽂环境了。

2、永久设置

进⼊apache-jmeter-5.2.1\bin⽬录,找到“jmeter.properties”⽂件,在⽂件的第37⾏后添加“language=zh_CN”,保存之后再打开jmeter就永久变为中⽂环境了。

4、Jmeter主要元件

1、测试计划:是使⽤ JMeter 进⾏测试的起点,它是其它 JMeter测试元件的容器

2、线程组:代表⼀定数量的⽤户,它可以⽤来模拟⽤户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。

3、配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。

4、前置处理器:负责在请求之前⼯作,常⽤来修改请求的设置

5、定时器:负责定义请求之间的延迟间隔。

6、取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最⼩单元,如:HTTP Request Sampler、FTPRequest Sample、TCP Request Sample、JDBC Request Sampler等,每⼀种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。

7、后置处理器:负责在请求之后⼯作,常⽤获取返回的值。

8、断⾔:⽤来判断请求响应的结果是否如⽤户所期望的。

9、监听器:负责收集测试结果,同时确定结果显⽰的⽅式。

10、逻辑控制器:可以⾃定义JMeter发送请求的⾏为逻辑,它与Sampler结合使⽤可以模拟复杂的请求序列。

5、Jmeter元件的作⽤域和执⾏顺序

1.元件作⽤域

配置元件:影响其作⽤范围内的所有元件。

前置处理器:在其作⽤范围内的每⼀个sampler元件之前执⾏。定时器:在其作⽤范围内的每⼀个sampler有效

后置处理器:在其作⽤范围内的每⼀个sampler元件之后执⾏。

断⾔:在其作⽤范围内的对每⼀个sampler元件执⾏后的结果进⾏校验。监听器:在其作⽤范围内对每⼀个sampler元件的信息收集并呈现。总结:从各个元件的层次结构判断每个元件的作⽤域。

2.元件执⾏顺序:

配置元件->前置处理器->定时器->取样器->后置处理程序->断⾔->监听器注意事项:

1.前置处理器、后置处理器和断⾔等组件只能对取样器起作⽤,因此,如果在它们的作⽤域内没有任何取样器,则不会被执⾏。2.如果在同⼀作⽤域内有多个同⼀类型的元件,则这些元件按照它们在测试计划中的上下顺序依次执⾏。

6、Jmeter进⾏接⼝测试流程

使⽤Jmeter进⾏接⼝测试的基本步骤如下:

1.测试计划

2.线程组

3.HTTP Cookie管理器

4.Http请求默认值

5.Sampler(HTTP请求)

6.断⾔

7.监听器(查看结果树、图形结果、聚合报告等)

7、Jmeter进⾏接⼝测试流程步骤详解

1、测试计划

打开Jmeter,在菜单左侧出现 “测试计划”。在这⾥测试计划我们可以把它理解成新建的空⽩项⽬,在这个空⽩项⽬下⾯可以添加⼀系列的接⼝。

2、线程组

添加⽅法:右键点击Test Plan->添加->线程(⽤户)->线程组。

元件描述:⼀个线程组可以看做⼀个虚拟⽤户组,线程组中的每个线程都可以理解为⼀个虚拟⽤户。

(1)线程数:即虚拟⽤户数。设置多少个线程数也就是设置多少虚拟⽤户数

(2)Ramp-Up时间(秒):设置虚拟⽤户数全部启动的时长。如果线程数为20,准备时长为10秒,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。

(3)循环次数:每个线程发送请求的个数。如果线程数为20,循环次数为10,那么每个线程发送10次请求。总请求数为20*10=200。如果勾选了“永远”, 那么所有线程会⼀直发送请求,直到⼿动点击⼯具栏上的停⽌按钮,或者设置的线程时间结束。

3、HTTP Cookie管理器

添加⽅法:右键线程组->添加->配置元件->HTTP Cookie管理器。

元件描述:HTTP Cookie管理器可以像浏览器⼀样存储和发送cookie,如果你要发送⼀个带cookie的http请求,cookie manager会⾃动存储该请求的cookies,并且后⾯如果发送同源站点的http请求时,都可以⽤这个cookies

4、HTTP请求默认值

添加⽅法:右键线程组->添加->配置元件->HTTP请求默认值。

元件描述:HTTP请求默认值是为了⽅便填写后续内容⽽设置。主要填写[服务器名称或IP]和[端⼝号],后续的HTTP请求中就不⽤每次都填写IP地址和端⼝号了。

5、HTTP请求

添加⽅法:右键线程组->添加->Sampler->HTTP请求。

元件描述:HTTP请求包括接⼝请求⽅法、请求路径和请求参数等。

HTTP请求详解

(1)名称:本属性⽤于标识⼀个取样器,建议使⽤⼀个有意义的名称。(2)注释:对于测试没有任何作⽤,仅⽤户记录⽤户可读的注释信息。(3)服务器名称或IP :HTTP请求发送的⽬标服务器名称或IP地址。(4)端⼝号:⽬标服务器的端⼝号,默认值为80 。

(5)协议:向⽬标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http

(6)⽅法:发送HTTP请求的⽅法,可⽤⽅法包括GET、POST、HEAD、PUT、TRACE、OPTIONS、DELETE等。

(7)路径:⽬标URL路径(不包括服务器地址和端⼝)

(8)内容编码:内容的编码⽅式,默认值为iso8859

(9)⾃动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter ⾃动重定向到新的页⾯。

(10)使⽤keep Alive :保持jmeter 和⽬标服务器之间的活跃状态,默认选中

(11)对Post使⽤multipart/from-data:当发送POST 请求时,使⽤multipart/from-data⽅法发送,默认不选中。

(12)同请求⼀起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了⼀个简单的对参数化的⽅法。⽤户可以将URL中所有参数设置在本表中,表中的每⼀⾏是⼀个参数值对(对应RUL中的 名称1=值1)。

6、响应断⾔

添加⽅法:右键HTTP请求->添加->取样器->HTTP请求。

元件描述:检查接⼝是否访问成功。如果检查失败的话会提⽰找不到断⾔的内容,没提⽰的话就代表成功了。

Apply to

指断⾔作⽤范围,通常发出⼀个请求只触发⼀个请求,所以勾选“main sample only”就可以;若发⼀个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了。

(1)Main sample and sub-samples:作⽤于主请求和⼦请求(2)Main sample only:仅仅只作⽤于主请求

(3)Sub-samples only:仅仅只作⽤于⼦请求

(4)Jmeter Variable:作⽤于jmeter变量(输⼊框内输⼊jmeter变量名称)测试字段

响应⽂本(匹配返回的json数据)、响应代码(匹配返回码:如200, 404,500等)、响应信息(匹配响应信息如“OK”字样)、响应头(匹配响应头)、请求头(匹配请求头)、URL样本(匹配请求的url链接,如果有重定向则包含请求url 和 重定向url)、[⽂档(⽂本)](匹配响应数据的⽂本形式)、忽略状态(⼀个请求有多个响应断⾔,第⼀个响应断⾔选中此项,当第⼀个响应断⾔失败时可以忽略此响应结果,继续进⾏下⼀个断⾔。如果下⼀个断⾔成功则还是判定事务是成功的)、请求数据(匹配请求数据)模式匹配规则

包括:响应内容包含需要匹配的内容即代表响应成功,⽀持正则表达式。

匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,⼤⼩写不敏感,⽀持正则表达式。字符串:响应内容包含需要匹配的内容才代表响应成功,⼤⼩写敏感,不⽀持正则表达式相等:响应内容要完全等于需要匹配的内容才代表响应成功,⼤⼩写敏感,不⽀持正则表达式否:相当于取反,如果结果为true,勾上否就是false

或者:如果不想⽤AND连接(所有的模式都必须匹配,断⾔才算成功),⽤OR选项可以⽤于将多个断⾔模式进⾏OR连接(只要⼀个模式匹配,断⾔就是成功的)测试模式

其实就是断⾔的数据。点击“添加”按钮,输⼊要断⾔的数据。

7、增加监听器

添加⽅法:线程组 ->右键添加 ->监听器 ->察看结果树。⼀般还会⼀并添加图形结果、聚合报告。元件描述:树状形式显⽰接⼝的访问结果,包括请求结果、请求内容、服务器的响应内容。

8、总结

JMter 还有很多⾮常强⼤的功能,以上列出来的内容都是最基本的使⽤。如有其它疑问,可以随时交流。如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及⼊门指导,帮你解决测试中遇到的困惑,我们这⾥有技术⾼⼿。

JMeter性能测试的步骤?

前提条件:
规划好性能测试所需要的标准,例如想要计算出来20个并发的前提下,在100QPS(每秒的请求数量)的压力下,服务器反馈响应时间的长短,然后形成报表来统计服务应用性能。

第一步:添加对应的组别

其中包括:线程数20个,用来作为线程的并发数量。预热时长10秒,这里的预热代表着准备时长,意味着在10秒对20个线程启动完成,并准备好开始执行。

而循环次数则代表了并发执行的循环次数,相当于每个线程循环执行多少个请求,例如设置为30则代表着请求数量为20*30=600的总请求数量。

第二步:添加对应的接口

这里以HTTP请求为例:

在已有线程组中选择对应的接口类型,此处可以添加多个接口,多个接口按顺序执行。同时也可以针对每个接口的上下文建立起关联,我们这里以单接口的测试流程为例。

请求参数分为parameters:代表着类似url后面直接拼接参数。bodys Data通常用来Form提交参数或者Json数据参数。Files Upload:代表着上传文件。对应参数添加之后,接口基本信息完成。

第三步:设置性能目标指数

接口做性能测试,不能只考虑接口是否跑通,主要还是要看最终接口的使用性能。

在第二步添加的接口中,点击右键,选择定时器:Constant Throughput Timer,并在时间选项中填入对应的数字,对应设置为:每分钟请求的数量。例如输入1800,则代表着一分钟跑完1800次,每秒钟30次的目标设置。

第四步:添加报告,以及设置结果标准

在第二步添加的接口中,点击右键,选择到聚合报告和查看结果树。这就意味着脚本执行之后,会形成这两个报告结果供给查看。

当然,还有图形化界面的报表结果,都可以导出,展示形式不同,结果是一样的,使用表格导出的数据,自己也可以做进一步的处理。

第五步:执行脚本

直接点击JMeter界面中的运行,则可以跑我们刚才设置好的脚本,跑完脚本之后,就可以导出并查看聚合报告了。

JMeter压力测试步骤(Jmeter压力测试使用流程)

软件介绍

可以直接从网上下载相关压缩包,解压后在bin目录下找到jmeter.bat文件打开使用。

打开后界面:

可在Options/ChooseLanguages里切换语言,方便使用。

使用流程

1.创建线程组

右键TestPlans选择添加/线程(用户)/线程组:

已创建好好线程组,进入线程组设置页面:

各参数意义:

1.线程数:并发数。如图设置50为模拟50个用户进行压力测试。
2.Ramp-Up Period (in seconds):并发用户加载时间。图中设置为1表示一秒内加载50个用户进行测试。
3.循环次数:并发执行循环次数,一次测试下,总的请求数量=线程数 * 循环次数;“永远”勾选上后循环一直进行,直到手动选择停止。如图设置为进行50000次请求。

Ctrl + S保存后会生成一个.jmx文件,方便存取。

2.添加取样器

常用为http请求,以下皆用http作为示例。

右键线程组→添加→取样器→http请求。

选择后打开http请求设置窗口:

各参数意义:
1.协议:请求协议类型,设置为http或https。如图为http。
2.服务器名称或ip:具体的ip地址(如:192.168.xx.xx)或域名(如:http://xx.com)
3.端口号:顾名思义,所用端口号(如:80)
4.方法:即请求方式,常用的如get post等
5.路径:所测试接口具体路径。
6.参数:请求具体的参数。get请求一般用键值对直接传递,可在下方添加。post请求如果使用json传参,要先设置http信息头管理。详见下。(! ! 注:参数设置之后一定要 ctrl+s保存!)

http信息头管理

以post类型json传参为例:在下方添加信息头,设置名称为:content-type;设置值为:application/json。

3.添加监听器

右键线程组→添加→监听器→查看结果树/汇总报告/聚合报告:

添加完成后,可看到左侧目录树结构:

之后可以点击上方工具栏绿色三角

运行,或者直接右键线程组启动。

4.查看结果

选择结果树查看各个请求信息。也可以查看汇总报告和聚合报告

聚合报告各个参数意义

1、Lable:Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值;

2、#Samples:表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100;【我的是用户有100,只迭代一次,因此也是100】

3、Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间;

4、Median:中位数,也就是 50% 用户的响应时间;

5、90% Line ~ 99% Line:90% ~99%用户的响应时间;

6、Min:最小响应时间;

7、Maximum:最大响应时间;

8、Error%:本次测试中出现的错误率,即 错误的请求的数量/请求的总数;

9、Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction ;

10、Received KB/src:每秒从服务器端接收到的数据量;

11、Sent KB/src:每秒从客户端发送的请求的数量。


http://chatgpt.dhexx.cn/article/N1qKh2Cq.shtml

相关文章

性能测试-项目实战-接口全流程压测

目录 1、前言 1.1、项目背景 1.2、场景执行步骤 2、司机长链接 2.1、司机出车环境 2.2、主要用到的包 2.3、脚本解析 3、全流程压测脚本 3.1、司乘数据准备 3.2、全链路压测脚本 4、资源监控与收集 4.1、聚合报告 4.2、自研脚本 1、前言 1.1、项目背景 在车辆与…

浅谈接口压测

一.背景 saas版在经过项目组全体成员的不断努力,最终实现了第一版的上线,为了验证sass系统可以支持多少用户同时在线访问,产生了sass版的接口压测。 二.压测是什么为什么要做压测 压测一般指性能压力测试,通过压测可以了解系统…

数据库select语句详解

SELECT 1.基本语法 select * from 表名 查询这张表所有内容。select 列名 from 表名 查询这张表某一列所有内容。select 列名1,列名2…from 表名 查询这张表的列1,列2,等多列。select distinct 列名 from 表名 查询这一列去掉重复内容后的内…

SQLite基本语句

SQLite基本语句 一: 1.SQLite数据库是一种嵌入式数据库,它的数据就是一个scores.db 2.经常被集成到各种应用程序中,甚至ios、Android、Mac OS、Linux 3.Python中内置了SQLite数据库,直接使用 4.数据库:关系型数据库&a…

Mysql数据库基本sql语句

文章目录 1 常用的数据类型2 查看数据库2.1 查看当前服务器中的数据库2.2 查看数据库中的表2.3 查看表的结构(字段) 3 SQL语句3.1 SQL语句分类3.2 创建及删除数据库和表3.2.1 创建新的数据库3.2.2 创建新的表3.2.3 删除指定的数据表3.2.4 删除指定的数据…

数据库的基本语句

这里写目录标题 mysql基本语句表的定义SQL语句分类 mysql基本语句 1.进入数据库 mysql -uroot -p 2.退出数据库 exit; 3.查看有哪些数据库 show databases; 4.创建新的数据库 create database 英文名字; 5.使用数据库 use 名字 6.查看表 show tables; 7.查看数据库版本 select…

Mysql基本语句

1、数据库的基本类型 1.关系数据库 特点:以表和表的关联构成的数据结构 优点:能表达复杂的数据关系。强大的查询语言,能精确查找想要的数据 缺点:读写性能比较差,尤其是海量数据的读写。数据结构比较死板 用途&am…

数据库常用语句汇总

数据库常用语句 一、对数据库的操作1. 用SQL语句创建数据库2.用SQL语句修改数据库3.用SQL语句删除数据库 二、对数据表的操作1.创建数据表定义数据表的约束NULL/NOT NULLUNIQUE约束(唯一约束)PRIMARY KET 主键约束外键约束CHECK 约束 2.修改数据表3.删除…

Mysql数据库基础语句

目录 一,常用的数据类型 二,数据库管理 1,Mysql基础语句操作 1.1,更改密码,登录数据库 1,2查看数据库结构 1.3:查看表结构 2, DDL语句:定义数据中的操作 2.1 创建数据库和表—create 2.2删…

MySql数据库基本语句

绝大多数都是记忆练习的东西 理解的偏少 一,DML语句之Delete(删除) 格式:delete from 表单名; 其后可以增加where条件限制,order by排序,limit限制 例如:delete from employee where name=‘ls’; 删除表中名字为李四的记录。 还有一个删除是truncate 格式:Truncate …

数据库基本语句

用DOS命令窗口操作数据库 启动数据库:mysql -u用户名 -p密码 当出现这个窗口意味着启动成功! DDL语句 数据库操作语句 查询当前所有数据库名称:show databases;创建数据库:create database 数据库名;如…

数据库常用操作语句总结

数据库常用操作语句总结 一、基础1.select 语句2.select distinct 语句3.where 子句4.and 和 or 运算符5.order by 语句6.insert into 语句7.update 语句8.delete 语句 二、高级1.top 子句2.like 操作符3.SQL 通配符4.in 操作符5.between 操作符6.as 别名7.join 表关联8.sql un…

java 数据结构--堆

1.堆的基本定义 二叉树的两种结构,一种是链式结构,一种就是顺序结构,普通二叉树其实是不适合用数组来存储数据,因为会造成大量空间的浪费,但完全二叉树似乎更合适于顺序结构存储,我们通常把堆(完全二叉树) 使用顺序数组来存储。 堆: (1&…

Java实现堆(最大堆)

1、什么是堆 现在有这么一个需求,设计一个结构,满足两个操作要求: 删除时,返回该结构的最大值或者最小值的元素往结构中新增元素 问题:如何组织优先这种结构? 一般数组、链表?有序数组或者链…

五、Java堆

Java堆 对于Java应用程序来说,Java堆 是虚拟机所管理的内存中最大的一块。堆,是被所有线程共享的一块内存区域,在虚拟机启动时创建。堆,唯一的目的就是存放对象实例,Java世界中“几乎”所有的对象实例都是在这里分配内…

java中的堆实现

java中的堆实现 完全二叉树:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部。即除了最后一层,其他层的节点个数都是满的,而且最后一层的叶子节点必须靠左。 如图: 二叉堆:必须是完…

[JAVA数据结构]堆

目录 1.堆的概念 2.堆的创建 3.堆的插入与删除 3.1堆的插入 3.2堆的删除 1.堆的概念 如果有一个关键码的集合K {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,…

堆的Java实现

一.概念 堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。 堆的特性: 它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是…

堆的创建---java

目录 1、堆的概念 2.堆的存储方式 3、堆的创建 3.1、堆向下调整 3.2、堆的创建 1、堆的概念 如果有一个关键码的集合K {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中&…

【堆】堆的实现(Java)

今天学习堆这种数据结构。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个结点的值总是不大于或不小于其父结点的值;堆总是一棵完全二叉树。 将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆…