首页 > 其他分享 >Jmeter接口测试流程详解

Jmeter接口测试流程详解

时间:2024-11-12 09:19:17浏览次数:3  
标签:Jmeter HTTP 请求 接口 发送 详解 线程 jmeter 元件


1.Jmeter介绍

Jmeter是一个基于java的开源性能测试工具,支持多线程并发测试。安装需先安装JDK,然后下载Jmeter并配置环境变量。主要元件包括测试计划、线程组、配置元件、取样器、断言和监听器等,它们按照特定顺序执行。线程组定义用户数和请求间隔,取样器发送不同类型的请求,断言检查响应结果,监听器收集并展示测试数据。

2、jmeter安装

首先需要安装jdk(最好是最新版的);

其次去官网下载最新的jmeter版本;

然后配置jmeter的环境变量;

最后双击jmeter.bat或者在“命令提示符”输入jmeter,运行jmeter。

具体安装步骤请自行网上查

3、设置jmeter的中文界面

进入jmeter的bin目录,找到“jmeter.properties”文件,打开文件搜索“language”,将“#language=en”改为“language=zh_CN”,保存之后再打开jmeter就永久变为中文环境了。

4、jmeter主要元件

1)测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器

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

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

4)前置处理器:负责在请求之前工作,常用来修改请求的设置

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

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

7)后置处理器:负责在请求之后工作,常用获取返回的值。

8)断言:用来判断请求响应的结果是否如用户所期望的。

9)监听器:负责收集测试结果,同时确定结果显示的方式。

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

5、Jmeter元件的作用域和执行顺序

1)元件作用域

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

前置处理器:在其作用范围内的每一个sampler元件之前执行。

定时器:在其作用范围内的每一个sampler有效

后置处理器:在其作用范围内的每一个sampler元件之后执行。

断言:在其作用范围内的对每一个sampler元件执行后的结果进行校验。

监听器:在其作用范围内对每一个sampler元件的信息收集并呈现。

总结:从各个元件的层次结构判断每个元件的作用域。

2)元件执行顺序:

配置元件->前置处理器->定时器->取样器->后置处理程序->断言->监听器

6、jmeter接口测试流程步骤

1)测试计划—打开Jmeter,在菜单左侧出现 “测试计划”

2)线程组—鼠标单击“测试计划”

线程数:即虚拟用户数。设置多少个线程数也就是设置多少虚拟用户数

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

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

3)HTTP请求—鼠标右键单击“线程组”

HTTP请求的名称:本属性用于标识一个取样器,建议使用一个有意义的名称。

注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。

端口号:目标服务器的端口号,默认值是80。

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

方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、TRACE、OPTIONS、DELETE等。

路径:目标URL路径(不包括服务器地址和端口)
内容编码:内容的编码方式,常用UTF-8。

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

对Post使用multipart/from-data:当发送POST 请求时,使用multipart/from-data方法发送,默认不选中。

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

4)添加断言—响应断言

5)添加监听器—察看结果树、聚合报告

标签:Jmeter,HTTP,请求,接口,发送,详解,线程,jmeter,元件
From: https://blog.csdn.net/2402_83077043/article/details/143701032

相关文章

  • 接口3
    当然可以,编写单元测试可以帮助验证IpAddressService接口的实现是否按预期工作。我们将使用JUnit和Mockito来编写单元测试。以下是一个示例单元测试类:单元测试类packagecom.example.service.impl;importcom.example.entity.AllIpAddressCheckRequest;importcom.examp......
  • D64【python 接口自动化学习】- python基础之数据库
    day64SQL-DQL-基础查询学习日期:20241110学习目标:MySQL数据库--133SQL-DQL-基础查询学习笔记:基础数据查询基础数据查询-过滤总结基础查询的语法:select字段列表|*from表过滤查询的语法:select字段列表|*from表where条件判断......
  • D65【python 接口自动化学习】- python基础之数据库
    day65SQL-DQL-分组聚合学习日期:20241111学习目标:MySQL数据库--133SQL-DQL-分组聚合学习笔记:分组聚合总结分组聚合的语法分组聚合的注意事项groupby中出现了哪个列,哪个列才能出现在select中的非聚合中......
  • 接口1源代码分析
    当然可以,下面是对addDepartmentPermission方法的详细解释,包括每一行代码的功能和作用:方法签名@Override@Transactional(rollbackFor=Exception.class)publicAddDepartmentPermissionResponseaddDepartmentPermission(AddDepartmentPermissionRequestrequest){@Over......
  • 接口1
    importstaticorg.mockito.Mockito.;importstaticorg.junit.jupiter.api.Assertions.;importorg.junit.jupiter.api.BeforeEach;importorg.junit.jupiter.api.Test;importorg.junit.jupiter.api.extension.ExtendWith;importorg.mockito.InjectMocks;importorg.......
  • RL 基础 | 如何使用 OpenAI Gym 接口,搭建自定义 RL 环境(详细版)
    参考:官方链接:Gymdocumentation|Makeyourowncustomenvironment腾讯云|OpenAIGym中级教程——环境定制与创建知乎|如何在Gym中注册自定义环境?g,写完了才发现自己曾经写过一篇:RL基础|如何搭建自定义gym环境(这篇博客适用于gym的接口,gymnasium接口也差不......
  • Java Lambda表达式与函数式接口和Stream API的常用方法
    JavaLambda表达式常与函数式接口和流(StreamAPI)一起使用,提供了非常强大的方式来处理集合和其他数据结构。以下是一些常用的Lambda表达式方法和它们的用途,特别是在结合java.util.stream.Stream时:1.map()用途:用于将流中的每个元素转换成另一种形式。示例:List<String>name......
  • 光学全息详解
    一、光学全息概述1.1 光学全息的基本思想与原理的概述        光波是电磁波,随时间振动,并在空间传播。光波照射物体时,其振幅和相位就被空间调制。物光波的振幅给出物体的亮度(强度)信息,相位给出物体的方位(深度和位置)信息。若能采用某种方法把物光波的振幅和......
  • 【Vue3】知识汇总,附详细定义和源码详解,后续出微信小程序项目(1)
    ====================快速跳转:我的个人博客主页......
  • 使用LangGraph构建复杂AI工作流:子图架构详解
    一、子图架构概述子图(Subgraph)是LangGraph中一个强大的特性,它允许我们将复杂的工作流程分解成更小、更易管理的组件。通过子图,我们可以实现模块化设计,提高代码的可重用性和可维护性。1.1子图的基本概念子图本质上是一个完整的图结构,可以作为更大图结构中的一个节点使用。它具......