当前位置: 首页 > news >正文

Jmeter(GUI模式)详细教程

Jmeter(GUI模式)详细教程

目录:导读

一、安装Jmeter

二、Jmeter工作原理

三、Jmeter操作步骤

Jmeter界面

1、测试计划

2、线程组

3、HTTP请求

4、监听器

四、压力测试

写在最后


 

前些天,领导让我做接口的压力测试。What??我从未接触过这方面,什么都不知道,一脸蒙。于是我从学习jmeter开始入手。

现在记录下来jmeter的使用步骤,希望能对大家有所帮助。


一、安装Jmeter

1、电脑安装Java,并配置环境变量,步骤见:链接

2、下载Jmeter,解压到本地。

3、进入/Jmeter/bin,双击jmeter,打开软件。

jmeter


二、Jmeter工作原理

Jmeter可以作为Web服务器与浏览器之间的代理网关,以便捕获浏览器的请求和Web服务器的响应,如此就可以很容易的生成性能测试脚本。有了性能测试脚本,Jmeter就可以通过线程组来模拟真实用户对Web服务器的访问压力。这与LoadRunner的工作原理基本一致。

工作原理


三、Jmeter操作步骤

Jmeter界面

1、测试计划

测试计划描述了Jmeter运行时将会执行的一系列步骤。一个完善的测试计划,会包含一个或多个线程组、逻辑控制器、采样器、监听器、定时器、断言和配置元件


2、线程组

线程组是任何测试计划的起点,所有的逻辑控制器和采样器都必须放在线程组之下。其他的测试元件可以被直接放在测试计划之下,这些测试元件对所有线程组都生效。线程组就像它的名称所描述的,被用来管理执行性能测试所需的Jmeter线程。用户通过线程组的控制面板可以:

· 设置线程数量

· 设置线程启动周期Period

· 设置执行测试脚本的循环次数

· 设置持续时间

· 设置启动延时时间

· 设置启动时间和结束时间

参数Ramp-Up Period 告诉Jmeter 达到最大线程数所需的时间。假定共有10个线程,Ramp-Up Period为100秒,那么Jmeter就会在100秒内启动这10个线程,并让它们运转起来。每一个测试线程都会在上一个线程启动10秒之后才开始运行。

注意 ⚠️:

参数Ramp-Up Period不能设定的太短,否则在测试初始阶段会给予服务器过大的压力。

建议 ⚠️:

初始值可以设定为Ramp-Up Period=总线程数。后续在根据实际情况适当增减。

设定测试运行的“启动时间”和“结束时间”,测试启动后会一直等待,直到用户设定的开始时间。测试运行期间,Jmeter会在每一次循环结束后,检查是否已经达到结束时间。如果已经达到了结束时间,Jmeter就会终止测试运行,否则Jmeter会继续下一个测试循环。(如需测试某个时间阶段的性能指标,则进行设置该部分。)

注意 ⚠️:

设置“启动延时”会使“启动时间”无效,而“持续时间”会使“结束时间”无效。


3、HTTP请求

配置元件

1)添加HTTP请求默认值

对于当前的测试计划,所有的请求都发往同一个服务器/IP,端口,路径,Parameters,Body等。可在HTTP请求默认值中设置。

步骤:右击鼠标-> 添加-> 配置元件-> HTTP请求默认值

HTTP请求默认值

2)添加HTTP信息头管理器

对于当前的测试计划,所有的请求信息头一致的。可在HTTP请求默认值中设置。

步骤:右击鼠标-> 添加-> 配置元件-> HTTP信息头管理器

HTTP信息头管理器

3)添加HTTP请求

步骤:右击鼠标-> 添加->Sampler->HTTP请求

添加HTTP请求

添加HTTP请求后,点击进行编辑,注意⚠️:

若已经在HTTP请求默认值中设定了默认值,则此处不需要再次设定服务器名称/IP。

注意⚠️:

若该测试计划,设置多个HTTP请求,则J meter会按照它们在测试树中出现的顺序发送请求。

编辑HTTP请求


4、监听器

1)查看结果树

步骤:右击鼠标-> 添加->监听器->查看结果树

查看结果树以树的方式来展示所有采样响应结果,测试人员可以通过它来查看任何采样的响应,除了展示响应结果之外,测试人员还能看到获取响应所消耗的时间,以及一些响应代码,需要

注意⚠️:

Request面板中显示Jmeter添加的头部,它不会展示由HTTP协议实现添加的头部

查看响应由多种方式,用户可以在左侧面板底部的下拉框选择

查看结果树

2)聚合报告

步骤:右击鼠标-> 添加->监听器->聚合报告

聚合报告会为测试中每一个不同采样在表格中创建一行,针对每一个采样,它都会统计服务器响应信息,并提供请求数目、Min,Max,Average,Error rate,Throughput(request/second)以及Thoughput(Kilobytes per second)等统计值。

聚合报告

Samples -- 本次场景中一共完成了多少个Transaction

Average -- 系列采样结果的平均响应时长

Median -- 统计意义上面的响应时间的中间值

90% Line -- 所有transaction中90%的transaction的响应时间都小于xx

95%Line -- 所有transaction中95%的transaction的响应时间都小于xx

99%Line -- 所有transaction中99%的transaction的响应时间都小于xx

Min -- 最小响应时间

Max -- 最大响应时间

Error -- 发生错误的比例

Troughput -- 吞吐量,单位:transaction/second

Kb/sec -- 该吞吐量以每秒Kilobytes来衡量

注意⚠️:

响应时间的单位均为ms


5、响应断言

断言被用于采样进行额外的检查,它会对相同作用域内的每个采样进行处理,为确保断言仅用于特定的采样。可针对主采样,子采样,二者同时施加特定的断言或者JMeter变量选项。

步骤:右击鼠标-> 添加->断言>响应断言

模式字符串包括:

· Contains,Matches --Perl5风格的正则表达式。

· Equals,Substring --纯文本,区分大小写。

响应断言


四、压力测试

1)压力测试分两种场景:

一种是单场景,压一个接口的;

第二种是混合场景,多个有关联的接口。

压测时间,一般场景都运行10-15分钟。如果是疲劳测试,可以压一天或一周,根据实际情况来定。

2)压测设置:

线程数:并发数量,具体说是一次存在多少用户同时访问。可呈递增状态添加,并找到最大值。

Rame-Up Period(in seconds):表示JMeter每隔多少秒发动并发。初始值可以设定为Ramp-Up Period=总线程数。后续在根据实际情况适当增减。

循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数

调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。

运行网络:最好设置与服务器在同一网络,降低因网速问题导致的结果不准确。

3)压测结果查看:

运行完后,聚合报告会显示压测的结果。主要观察Samples、Average、error、Throughput。

Samples:表示一共发出的请求数

Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms)

Error%:测试出现的错误请求数量百分比。若出现错误就要看服务端的日志,配合开发查找定位原因

Throughput:简称tps,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,tps越高说明服务器处理能力越好。

4)压测结果的分析

1、压测结束,登陆相应的web服务器查看CPU等性能指标,进行数据的分析;

2、不断的增加并发数,加到tps达到一定值开始出现下降,那么那个值就是最大的tps;

3、不断增加并发数,达到一个值后,服务器不断出现请求超时,则可认为该值为最大的并发数;

4、确定允许错误率的范围,与当前的错误率进行比较;

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!


写在最后

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~

你也可以加入下方的的群聊去和同行大神交流切磋

 

相关文章:

Jmeter(GUI模式)详细教程

Jmeter(GUI模式)详细教程 目录:导读 一、安装Jmeter 二、Jmeter工作原理 三、Jmeter操作步骤 Jmeter界面 1、测试计划 2、线程组 3、HTTP请求 4、监听器 四、压力测试 写在最后 前些天,领导让我做接口的压力测试。What…...

2023年CDGA考试-第14章-大数据和数据科学(含答案)

2023年CDGA考试-第14章-大数据和数据科学(含答案) 单选题 1.MapReduce模型有三个主要步骤 () A.剖析、关联、聚类 B.提取、转换、加载 C.映射、修正、转换 D.映射、洗牌、归并 答案 D 2.以下哪种技术已经成为面向数据科学的大数据集分析标准平台。 A.MPP技术。 B.Hado…...

【阿旭机器学习实战】【36】糖尿病预测---决策树建模及其可视化

【阿旭机器学习实战】系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流。 【阿旭机器学习实战】【36】糖尿病预测—决策树建模及其可视化 目录【阿旭机器学习实战】【36】糖尿病预测---决策树建模及其可视化1. 导入数据并…...

简易黑客初级教程:黑客技术,分享教学

第一节,伸展运动。这节操我们要准备道具,俗话说:“工欲善其事,必先利其器”(是这样吗?哎!文化低……)说得有道理,我们要学习黑客技术,一点必要的工具必不可少。 1,一台属于自己的可以上网的电…...

日本公派访问学者的具体申请流程

公派日本访问学者的具体申请流程,知识人网整理了相关的资料以供大家参考。第一、申请材料一般申请CSC日本访问学者,截止日是每年的1月15号左右,但是学院在1月10号之前就审查材料了。材料包括:CSC网页的报名表,教授邀请…...

投票点赞链接制作投票链接在线制作投票图文链接制作点赞

用户在使用微信投票的时候,需要功能齐全,又快捷方便的投票小程序。而“活动星投票”这款软件使用非常的方便,用户可以随时使用手机微信小程序获得线上投票服务,很多用户都很喜欢“活动星投票”这款软件。“活动星投票”小程序在使…...

PHY设备驱动

1. 概述 MAC控制器的驱动使用的是platform总线的连接方式,PHY设备驱动是基于device、driver、bus的连接方式。 其驱动涉及如下几个重要部分: 总线 - sturct mii_bus (mii stand for media independent interface) 设备 - struct phy_device 驱动 - struc…...

Linux——UDP协议与相关套接字编程

一.概念在网络通信中,传输层中最常用的通信协议有两个:TCP协议与UDP协议。这两种协议虽然都可以用于网络通信,但是通信方式不同决定了应用场景的不同。与TCP协议相比,UDP协议最具特色的不同点有两个:无连接与面向数据报…...

EM算法 简明理解

E:Expection,期望步,利用估计的参数,来确定未知因变量的概率,并利用其来计算期望值。 M:Maximization,最大化,使用最大似然法更新参数值,使E步中期望值出现的概率最大。…...

论坛项目小程序和h5登录

项目中安装uview出现npm安装uview 直接报错:创建一个package.json配置文件在进行安装。cmd到项目。初始化一个package.json文件(vue项目的配置文件) npm init --yes 安装uview项目点击关注进入管页面,需要验证用户是否登录查用户是…...

kubernetes集群pod中的pause容器作用

kubernetes集群pod中的pause容器作用 我们搭建完集群了以后,可以使用最简单的方式创建一个pod,随意你建立什么pod,去访问相应node上执行docker ps 就会看到有一种pause容器,但是你可能从来没有启用 etrics-scraper_dashboard-me…...

【2.24】malloc()分配内存、MySQL事务、项目、动态规划

malloc是如何分配内存的? 在 Linux 操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同位数的系统,地址空间的范围也不同。比如最常见的 32 位和 64 位系统,如下所示: 内核空间与用户空…...

Unity——使用铰链关节制作悬挂物体效果

目的在场景中创建一个悬挂的物体,是把多个模型悬挂在一起可以自由摇摆,类似链条的效果效果图前言什么是铰链关节?铰链关节 将两个刚体(Rigid body)组会在一起,从而将其约束为如同通过铰链连接一样进行移动。…...

plsql过程语言之uxdb与oracle语法差异

序号场景uxdboracle1在存储过程中使用goto子句create or replace procedure uxdbc_oracle_extension_plsql_goto_0001_procedure01(t1 int) language plsql as $$ begin if t1%20 then goto even_number; else goto odd_number; end if; <<even_number>> raise…...

file_get_contents 打开本地文件报错: failed to open stream: No such file or directory

php 使用file_get_contents时报错 failed to open stream: No such file or directory (打开流失败&#xff0c;没有这样的文件或目录) 1. 首先确保文件路径没问题 最好是直接复制一下文件的路径 2. windows电脑可以右键该文件 → 属性→安全 →对象名称 选中后复制一下 3. 然后…...

Candence allegro 创建等长的方法

随着源同步时序电路的发展,越来越多的并行总线开始采用这种时序控制电路,最典型的代表当属目前炙手可热的DDRx系列。下图这种点到点结构的同步信号,对于攻城狮来说,设置等长约束就非常easy了图片。 But,对于有4、6、8、、、等多颗DDR芯片的ACC同步信号来说,要设置等长约束…...

使用Python批量修改文件名称

下载了一些图片&#xff0c;想要更改其文件的名称。 试了许多方法&#xff0c;都不太理想。 于是想到了使用Python来实现。 需要用到的模块及函数&#xff1a; import osrename() 函数用于改变文件或文件夹的名称。它接受两个参数&#xff1a;原文件名和新文件名。 os.rena…...

【跟我一起读《视觉惯性SLAM理论与源码解析》】第八章 ORB-SLAM2中的特征匹配

特征匹配在ORB-SLAM2中是很重要的内容&#xff0c;函数有多次重载&#xff0c;一般而言分为以下 单目初始化下的特征匹配通过词袋进行特征匹配通过地图点投影进行特征匹配通过Sim&#xff08;3&#xff09;变化进行特征匹配 在单目初始化下的特征匹配是参考帧和当前帧之间的特…...

【Leedcode】数据结构中链表必备的面试题(第四期)

【Leedcode】数据结构中链表必备的面试题&#xff08;第四期&#xff09; 文章目录【Leedcode】数据结构中链表必备的面试题&#xff08;第四期&#xff09;1.题目2.思路图解(1)思路一(2)思路二3.源代码总结1.题目 相交链表&#xff1a; 如下&#xff08;示例&#xff09;&…...

【2023】助力Android金三银四面试

前言 新气象&#xff0c;新生机。在2023年的Android开发行业中&#xff0c;又有那些新的面试题出现呢&#xff1f;对于Android面试官的拷问&#xff0c;我们又如何正确去解答&#xff1f;万变不离其宗&#xff0c;其实只要Android的技术层面没变化&#xff0c;面试题也就是差不…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...