(Java企业 / 公司项目)JMeter接口压测使用(保姆式手把手教会)

一. JMeter简介认识(重点是下面的使用方法)

JMeter是一个开源的Java应用程序,由Apache软件基金会开发和维护,可用于性能测试、压力测试、接口测试等。

1. 原理

JMeter的基本原理是模拟多用户并发访问应用程序,通过发送HTTP请求或其他协议请求,并测量响应时间、吞吐量、并发用户数、错误率和性能指标等,以评估应用程序的性能和稳定性。

2. JMeter特性

1)支持多种协议

支持HTTP、HTTPS、FTP、TCP、JDBC和JMS等协议,可以模拟多种网络环境和应用程序场景。

2)支持多种测试类型

支持负载测试、压力测试、功能测试、基准测试和分布式测试等多种测试类型,适用于不同的性能测试需求。

3)支持多种测试场景

支持多种测试场景,包括并发用户数、持续时间、循环次数和延迟时间等,可以模拟真实的使用场景。

4)支持多种测试结果收集和显示方式

支持多种测试结果收集和显示方式,包括聚合报告、图形结果、树形结果和控制台输出等,便于性能分析和优化。

5)支持插件和扩展

JMeter支持插件和扩展,可以扩展其功能和性能,以满足特定的性能测试需求。

2. JMeter的组件

1)测试计划(Test Plan)

测试计划是JMeter中的最高层次,包括多个线程组、配置元件和监听器等。测试计划用于设置全局的测试参数,包括测试名称、工作目录、线程数和持续时间等。

2)线程组(Thread Group)

线程组是JMeter中用于模拟并发用户访问应用程序组件,包括一组线程(用户)和一组控制器(逻辑控制)。线程组用于设置线程数、循环次数、持续时间和延迟等参数,控制器用于设置线程(用户)的请求和响应的逻辑控制。

3)HTTP请求(HTTP Request)

HTTP请求是JMeter中模拟客户端向服务器发送HTTP请求的组件。HTTP请求包括请求的URL、协议、方法、参数、头部和Body等,可以模拟GET、POST、PUT、DELETE等HTTP请求方法,以测试应用程序的响应速度和性能。在HTTP请求中,可以设置请求的参数、响应的断言和监听器等,以收集和显示测试结果。

4)控制器(Controller)

用于控制测试计划和线程组的执行流程,包括简单控制器、随机控制器、循环控制器和条件控制器等。

5)监听器(Listener)

监听器是JMeter中收集和显示测试结果的组件,包括聚合报告监听器、图形结果监听器、树形结果监听器和控制台输出监听器等。监听器用于监控测试结果,以评估应用程序的性能和稳定性,并生成报告。

6)断言(Assertion)

断言是JMeter中验证HTTP响应的状态码、内容和格式的组件,包括响应码断言、响应内容断言和响应时间断言等。断言用于验证HTTP响应的正确性和完整性,以确保应用程序的功能和性能。

7)配置元件(Config Element)

用于配置测试计划和线程组的属性和参数,包括HTTP请求默认值、CSV数据文件配置和用户定义的变量等。

8)启动器(Timer)

用于在发送HTTP请求前或线程开始前等待一段时间,以模拟用户的行为。启动器用于设置线程组的执行前等待时间,以模拟真实的使用场景。

9)前置处理器(Pre-Processor)

用于在发送HTTP请求前进行处理,包括用户参数、CSV数据集和HTTP Cookie等。

10) 后置处理器(Post-Processor)

用于在接收HTTP响应后进行处理,包括正则表达式提取器和XPath提取器等。

重点: 

很多企业当中这个东西也挺需要的,一般都是使用postman来测试接口,但是我们使用的是JMeter

首先看下面的官网Apache JMeter - Apache JMeter™

 下载地址以及下载方式如下图

二.  JMeter的启动方式如下

liunx启动的方式是.sh结尾的方式,但是我的是window实现效果所以按照下面的方式来启动

 windows启动方法

修改配置默认为英文的我们改成中文

在bin文件夹下面有一个jmeter. properties文件在里面找到language将英文改成中文zh_cn

 将默认的en改成中文的zh_CN这个表示的就是中文

 双击启动后等一会就会出现客户端的页面,可以自由设置自己的背景图以及主题

三 . JMeter使用操作

1)工具栏:包含了常用的功能按钮,例如开始、停止、保存和导入等。例如,我们可以使用工具栏上的按钮开始和停止测试,以便进行测试和观察测试结果。

2)树形结构:用于组织测试计划的各个组件,包括测试计划、线程组、控制器、监听器和配置元件等。

3)属性窗口/面板:用于显示和编辑选定组件的属性,例如线程数、延迟和协议等。

4. JMeter的配置文件

JMeter的配置文件用于存储各种配置选项和全局变量,包括以下几个主要文件:

1)jmeter.properties:包含了JMeter的全局配置选项,例如默认编码、连接超时和代理服务器等。

2)user.properties:包含了用户自定义的全局变量和配置选项,例如用户定义的变量和自定义的插件等。

3)saveservice.properties:JMeter的结果保存配置文件,包含JMeter测试结果的保存格式、编码、压缩、分隔符等配置参数。

 接下来就是点击Ctrl + S也就是保存操作,这个时候就会弹出一个框里面就是要你选择保存的位置,可以新建和选择文件夹这里我就在安装包的位置新建一个文件夹JmeterProduct工作区,后面保存的都可以放在这个文件夹里

 Jmeter的文件其实是一个xml。

右击新建 - 》 添加- 》 线程用户- 》 线程组

线程组中可以模拟高并发场景下一个接口的测试情况

 右击线程组-》添加- 》 取样器- 》 HTTP请求

 四. JMeter项目如何操作

前面设置完毕之后配置这个接口的信息

 增加请求头,按照一个接口的的信息来配置,因为这是一个登录接口我们需要配置一下名称和值这样就接口就可以获取到json格式的数据,以及post的请求方式,等点击保存之后保存在前面创建的文件夹中直接save就好了。

 接下来就是配置信息主体的参数了

注意:消息题数据里面必须是标准的json,key必须带引号,最后一个key后面不能有逗号

 当我们启动这个测试接口之后查看idea后台会发现登录成功了,并且生成了token,启动方式就是点击这个会员登录,然后点击上面的绿色三角形就好了

 注意: 这样每次都要查看idea后台那还不如直接使用idea自带的接口测试呢

所以我们再来配置一下如何在jmeter里面显示后台的返回结果

右击添加-》监听器 -》查看结果树, 然后再执行这个接口查看返回结果

 点击再执行一次查看这个查看结果树

注意:  Jmeter的消息题也就是传格式的时候必须按照标准的json格式来传参数

我发起10个线程来循环发1个请求 来执行这个接口来模拟看看什么效果,在线程组中配置一下就好了很简单重要的是效果

效果就是上面的情况返回了10个请求的响应数据来测试。

以上就是JMeter的使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion 提示词解析|AI绘画

概述 玩了很久的SD,感觉已经没有一开始的激情了,最近有幸看到了几篇关于提示词的指导文章,突然感觉又发现了新大陆,整理后供大家一起学习。 好的提示词应该包含如下几个模块: Anatomy of a good prompt解析好的提示…

C++中的符号->

在C中,符号“->”用于访问指向对象的指针的成员。它也被称为箭头运算符或取消引用运算符。 使用“->”符号的基本语法是: 对象指针->成员名称 这里,object_pointer是指向对象的指针,member_name是属于该对象的成员变量…

多目标优化(Python):多目标粒子群优化算法(MOPSO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6(提供Python代码)

一、多目标粒子群优化算法 多目标粒子群优化算法(MOPSO)是一种用于解决多目标优化问题的进化算法。它基于粒子群优化算法(PSO),通过引入多个目标函数和非支配排序来处理多目标问题。 MOPSO的基本思想是将问题转化为在…

spring security @EnableWebSecurity自动配置DaoAuthenticationProvider流程

版本 spring-security:6.2.1 满足下列情况时,spring-security会自动配置DaoAuthenticationProvider 使用EnableWebSecurity注册UserDetailsServiceBean没有注册其他AuthenticationProvider类型的Bean没有通过http.authenticationProvider配置 源码 org.springf…

操作说明 - DarkVoxel Wiki

[首页] DarkVoxel (第二版) 操作说明 基本操作 AWSD: 移动玩家 0~9: 快捷栏物品选择 J: 使用当前物品 方块上左键:镐/斧挖掘方块/砍树 K: 操作面前方块 方块上右键:操作方块 Backspace: 丢弃一个物品 物品上左键&#x…

C#,字符串匹配(模式搜索)AC(Aho Corasick)算法的源代码

Aho-Corasick算法简称AC算法,也称为AC自动机(Aho-Corasick)算法,1975年产生于贝尔实验室(The Bell Labs),是一种用于解决多模式字符串匹配的经典算法之一。 the Bell Lab 本文的运行效果: AC算法以模式树…

Posgresql macOS安装和基础操作

摘要 本文介绍macOS版本Postgresql的安装,pg常用命令。作为笔记记录,后续方便查看。 Postgresql安装 官网下载postgresql安装包https://www.postgresql.org/download/。官网下载慢时,可以从这里下载我上传的mac版本的pg安装包资源。下载后&am…

Python装饰器重载内置操作

1 Python装饰器重载内置操作 python2.x的新式类和python3.x的全部类,内置操作表达式调用,不会触发__getattr__()和__getattribute__()。参考《python的getattr和getattribute拦截内置操作》。 NO内置操作表达式(隐式调用)对应方法(显式调用)1索引操作[…

深度学习记录--Train/dev/test sets

为什么需要训练集、验证集(简单交叉验证集)和测试集? 为了创建高效的神经网络,需要不断进行训练(迭代) 一个神经网络的产生 从最开始的想法idea开始,然后付诸于代码code,根据结果验证反过来对一开始的想法idea进行修正&#xf…

一、引言(DataWhale大模型理论基础)

引言 一、什么是语言模型 语言模型(LM:language model) 定义:一种对令牌序列(token)的概率分布 说明: 假设我们有一个令牌集的词汇表 V 。语言模型p为每个令牌序列 x1, …,xL ∈ V 分配一个概率(介于0和…

腾讯云服务器怎么买?两种购买方式更省钱

腾讯云服务器购买流程很简单,有两种购买方式,直接在官方活动上购买比较划算,在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动…

深度系统QT 环境搭建

1.QT安装 不折腾最新版直接去商店搜索QT安装。 2.修改su密码,安装需要权限 打开一个终端,然后输入下面的命令:按照提示输入密码按回车就行。 sudo passwd 回车后会出现让你输入现在这个账户的密码: 3.编译环境安装。 安…

JUC-线程中断机制和LockSupport

线程中断机制 概念 java提供了一种用于停止线程的协商机制-中断。称为中断标识协商机制。 常用API public void interrupt() 仅仅让线程的中断标志位设置为true。不进行其他操作。public boolean isInterrupted() 获取中断标志位的状态。public static boolean interrupted…

案例分享:销售管理者和员工的一对一面谈

销售面谈对于销售过程至关重要,在快速变化的市场环境中,一对一的面谈成为销售管理者与销售员工之间沟通的重要桥梁。 通过这种沟通方式,双方可以共同探讨销售工作的各个方面,包括业绩回顾、目标设定、技能提升、市场变化应对以及…

CSS实现超出部分的省略

1、为什么要省略 在日常开发过程中我们难免会遇到后端返回给我们的的数据太长的情况,此时我们通常采取的是...的省略方式,其中的CSS大致如下,既可以实现对应的省略显示,但有些时候我们有需要用户可以查看具体的完整信息&#xff0…

利用Python的csv(CSV)库读取csv文件并取出某个单元格的内容的学习过程

csv库在python3中是自带的。 利用它可以方便的进行csv文件内容的读取。 注意:要以gbk的编码形式打开,因为WPS的csv文件默认是gbk编码,而不是utf-8。 01-读取表头并在打印每一行内容时一并输出表头 表头为第1行,现在要读取并打…

基础面试题整理4

1.mybatis的#{}和${}区别 #{}是预编译处理,${}是字符串替换#{}可以防止SQL注入,提高安全性 2.mybatis隔离级别 读未提交 READ UNCOMMITED:读到了其他事务中未提交的数据,造成"脏读","不可重复读","幻读&…

1月12日1月15日代码随想录路经总和从中序和后序遍历构造二叉树

112.路经总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 …

局部替换 阿里 ReplaceAnything

目录 阿里的ReplaceAnything,没开源, 可以人体替换、服装替换、物体替换以及背景替换等等。

matlab|基于VMD-SSA-LSTM的多维时序光伏功率预测

目录 1 主要内容 变分模态分解(VMD) 麻雀搜索算法SSA 长短期记忆网络LSTM 2 部分代码 3 程序结果 4 下载链接 1 主要内容 之前分享了预测的程序基于LSTM的负荷和可再生能源出力预测【核心部分复现】,该程序预测效果比较好,并且结构比较清晰&#…