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

【性能测试】Jmeter下载安装、环境配置-小白使用手册(1)

本篇文章主要包含Jmeter的下载安装、环境配置

添加线程组、结果树、HTTP请求、请求头设置。JSON提取器的使用,用户自定义变量

目录

一:引入

1:软件介绍

2:工作原理

3:安装Jmeter

4:启动方式

(1)命令⾏启动

(2)手动启动

5:语言配置

二:基础使用

1:线程组&参数介绍

(1)Ramp-Up 时间

(2)调度器持续时间

(3)循环次数

2:添加结果树

(1)响应时间

(2)响应码

 3:添加HTTP请求

(1)HTTP默认请求值

4:请求头的设置 

(1)bug复现

(2)建立HTTP请求头管理器

(3)在请求头中加入token后正确返回结果

(4)作用域设置

(5)错误信息分析

二:JSON提取器

1:引入

(1)问题引入

(2)JSON Path Tester

(3) JSON操作符

(4)具体使用例子

(5)避免重覆盖问题

(6)解决方式

2:运用JSON提取器

三:用户定义变量

四:设置请求头格式 

1:bug引入

2:解决思路

3:正确示例


一:引入

1:软件介绍

Apache JMeter是Apache组织基于Java开发的压⼒测试⼯具,⽤于对软件做性能测试

2:工作原理

3:安装Jmeter

链接直达:Apache JMeter - 下载 Apache JMeter

4:启动方式

(1)命令⾏启动

这里阿华安装的是5.5版本,版本不影响启动方式,在用户菜单中搜索环境变量

点击新建变量,把你刚下载的文件的路径——找到那个bin就可以了。变量名字随意,变量值要对应路径

然后windows+r   回车键 ——打开命令操作,输入jmeter,就可以启动我们的软件了

(2)手动启动

5:语言配置

找到jmeter.properties这个文件,用记事本打开,修改language=zh_CN

二:基础使用

1:线程组&参数介绍

看图说话。这俩个参数容易混淆,Ramp-Up,指的是我们10个线程在这1s内匀速启动,调度器的持续时间是,这个说的是这10个线程启动后(也就是1s后),持续测试的时间(这里勾选了永远,即使写了2s,也会一直测试下去)。

(1)Ramp-Up 时间

控制的是线程的启动节奏

(2)调度器持续时间

控制的是整个测试运行的时长

(3)循环次数

指的是要执行的轮次(比如说我设置个循环次数为2,那第一轮10个线程1s启动完,在持续2s不断地发送请求,之后结束第一次循环,紧接着进入第二次循环,还是这10个线程慢启动1s,在持续2s不断地发送请求......)

注意点①:调度器的持续时间是要等所有线程启动后,才开始计时

注意点②:一轮循环结束,新一轮循环还是这10个线程,需要重新匀速启动,在持续时间内发送请求

注意点③:如果这里不勾选,永远,这个选项,那么一定要在输入框中输入数字,否则,在启动的时候,会自动勾选上永远

2:添加结果树

这里用来查看我们查看发出请求后收到的响应结果

 取样器结果中需要去关注的信息

(1)响应时间

load time 响应时间  单位是ms

(2)响应码

(这里的响应时间就不正常)Response code

 3:添加HTTP请求

(1)HTTP默认请求值

同一个系统中协议,ip,端口是不会发生改变的,所以我们把这些信息提取出来,放到默认值当中,注意它们的作用域是同级的!

注意点:当取样器中存在未配置的选项,会直接去http请求默认配置中取;取样器中配置了的选项就不会去默认配置中取了。

4:请求头的设置 

(1)bug复现

主要是针对登录的状态

举例,看我们在浏览器中登录后,请求头中就有了这个JWT令牌

(2)建立HTTP请求头管理器

(3)在请求头中加入token后正确返回结果

(4)作用域设置

因为有拦截器的设置,所以没有token令牌的页面是不会正确加载的,我们如果把这个默认请求头设置放到同级作用域,那还要登录干啥呀,所以把这个头管理器放到列表页就OK了。

将登录后的data拿过来

(5)错误信息分析

如果我们在HTTP请求当中把域名写错,会报下面这个错误

二:JSON提取器

1:引入

(1)问题引入

我们配置的这个token是死的,一旦过期,或者重新请求token更新了,那么我们这个请求头中的token就无效了,所以想一想

那可不可以将每次我们登录后拿到的token抽取出来———>赋值到我们的默认HTTP请求头当中呢

(2)JSON Path Tester

有可能会遇到兼容性问题,重启一下Jmeter即可,直到 test按钮出现为止

(3) JSON操作符

(4)具体使用例子

同样我们也可以提取到code等等

提取data中的数据记为变量token,可以这么理解奥

这里用的时候用{}选择token就行了

此时我们在进行请求就可以正常访问了,

发问:我把取用户登录凭证放到登录前面不会产生影响吗,我这都还没登录呢?——这里我们把提取用户登录凭证(也就是Json提取器)放到线程组的前方(这个顺序不影响结果),它的作用范围是同级

(5)避免重覆盖问题

梳理一下——发起登录请求——>拿到返回值中的data数据(也就是token)记为token (token=$.data)——>在把这个${token}设置为HTTP响应头,当我们请求列表页的时候,HTTP响应头中就会带上这个token——>但是问题来了,此时列表页也会返回回来相关data数据,那么我们的token = $.data就被覆盖了,下次发起新的HTTP请求,请求头当中就不在是令牌了,而是我们列表页返回回来的data数据——这不就g了

(6)解决方式

第一步:把提取用户登录凭证放到登录当中,这里我们的登录请求中也会携带token,但是token为空(我们还没登录成功呢嘛)

第二步:把HTTP信息头管理放到最前面,作用于整个同级作用域之内

============================================================

总结:我们的HTTP信息头管理器中配置的token变量 ,它去取数据的时候,会去同级和同级的子集中去找,找到就给你拿过来!!

2:运用JSON提取器

如果我们的blogId=9999不存在,就g了,那考虑我们能不能把这个9999写成活的不要写死。

继续JSON提取器, 提取我们列表页中有效的blogId,设置为blogId

后续使用的时候直接${blogId}就可以用了!!如下

三:用户定义变量

想象一下,如果有一个blogId需要重复使用过,我们能不能定义一个变量来统一管理呢?

假设现在有200个请求都要去请求blogId=1993,这里我们就可以提出来,进行统一管理

四:设置请求头格式 

1:bug引入

场景引入,有一些内部的接口 ,限制了请求头中的格式为application/json,而并非Jmeter中默认的 charset=UTF-8

所以我们设置一下请求头的属性,但是这个位置不要乱放,应该放到添加博客这个级别下,否则就作用于全局啦!!

2:解决思路

第一步:去网页web前端查看一下,F12查看网页请求中的请求头信息

第二步:去postman中测试是否是content-type的原因

第三步:定位到bug之后,去Jmeter对应接口测试下中设置请求体格式为application/json

第四步:测试

3:正确示例

相关文章:

【性能测试】Jmeter下载安装、环境配置-小白使用手册(1)

本篇文章主要包含Jmeter的下载安装、环境配置 添加线程组、结果树、HTTP请求、请求头设置。JSON提取器的使用,用户自定义变量 目录 一:引入 1:软件介绍 2:工作原理 3:安装Jmeter 4:启动方式 &#xf…...

HTML星球大冒险之路线图

第一章:欢迎来到 HTML 星球! 1.1 宇宙的基石:HTML 是什么? 🌍 比喻:HTML 是网页世界的「乐高积木」,用标签搭建一切可见内容🎯 目标:理解 HTML 的作用,掌握…...

初识大模型——大语言模型 LLMBook 学习(一)

1. 大模型发展历程 🔹 1. 早期阶段(1950s - 1990s):基于规则和统计的方法 代表技术: 1950s-1960s:规则驱动的语言处理 早期的 NLP 主要依赖 基于规则的系统,如 Noam Chomsky 提出的 生成语法&…...

LabVIEW伺服阀高频振动测试

在伺服阀高频振动测试中,闭环控制系统的实时性与稳定性至关重要。针对用户提出的1kHz控制频率需求及Windows平台兼容性问题,本文重点分析NI PCIe-7842R实时扩展卡的功能与局限性,并提供其他替代方案的综合对比,以帮助用户选择适合…...

AI编程工具-(七)

250309,10这几天都在用通义灵码搞做建模分析。 感想,指令越具体,实现效果越好。 依然是之前的时许数据,这几天分析效果没有提升。 画的几个有意思的图表和效果 主要觉得这图好看,提示词不复杂。 预测效果 预测准确性提升不大聊…...

什么是一致性模型,在实践中如何选择?

一、一致性模型 1、强一致性(Strong Consistency) ①定义:强一致性意味着在分布式系统中的每个读取操作,都能读取到最近写入的数据。也就是说,所有节点都始终保持相同的数据状态。 ②特点:写操作对所有节点立即可见,所有的读取操作在任何节点上都能看到最新的写入。 …...

Python项目-智能家居控制系统的设计与实现

1. 引言 随着物联网技术的快速发展,智能家居系统已经成为现代家庭生活的重要组成部分。本文将详细介绍一个基于Python的智能家居控制系统的设计与实现过程,该系统能够实现对家庭设备的集中管理和智能控制,提升家居生活的便捷性和舒适度。 2…...

RDP连接无法复制粘贴问题的排查与解决指南

RDP连接无法复制粘贴问题的排查与解决指南 问题描述注意事项排查原因检查RDP剪贴板进程是否正常检查组策略设置检查权限和安全设置检查网络连接 解决方式重启rdpclip.exe进程启用RDP剪贴板重定向调整组策略设置检查并调整安全设置更新驱动程序和系统检查网络连接使用其他远程连…...

IDEA与Maven使用-学习记录(持续补充...)

1. 下载与安装 以ideaIU-2021.3.1为例,安装步骤: 以管理员身份启动ideaIU-2021.3.1修改安装路径为:D:\Program Files\JetBrains\IntelliJ IDEA 2021.3.1勾选【创建桌面快捷方式】(可选)、【打开文件夹作为项目】&…...

Go 语言封装 HTTP 请求的 Curl 工具包

文章目录 Go 语言封装 HTTP 请求的 Curl 工具包🏗️ 工具包结构简介核心结构体定义初始化函数 🌟 功能实现1. 设置请求头2. 构建请求3. 发送请求4. 发送 GET 请求5. 发送 POST 请求6. 发送 PUT 请求7. 发送 DELETE 请求8. 读取响应体 💡 实现…...

RK3568 SD卡调试记录

文章目录 1、环境介绍2、概念理清3、原理图查看4、dts配置5、验证6、SD卡启动6.1、启动优先级6.2、启动流程6.2.1、Maskrom(Boot ROM)启动优先级6.2.2、Pre-loader(SPL)启动优先级 6.3、如何从sd卡启动?6.3.1、制作sd启动卡6.3.2、sd卡启动 7、总结 1、环境介绍 硬…...

高效获取历史行情数据:xtquant的实战应用

高效获取历史行情数据:xtquant的实战应用 🚀量化软件开通 🚀量化实战教程 在量化交易领域,历史行情数据是构建和测试交易策略的基础。无论是回测策略的有效性,还是进行市场分析,高质量的历史数据都是不可…...

【python爬虫】酷狗音乐爬取练习

注意:本次爬取的音乐仅有1分钟试听,仅作学习爬虫的原理,完整音乐需要自行下载客户端。 一、 初步分析 登陆酷狗音乐后随机选取一首歌,在请求里发现一段mp3文件,复制网址,确实是我们需要的url。 复制音频的…...

阿里云 DataWorks面试题集锦及参考答案

目录 简述阿里云 DataWorks 的核心功能模块及其在企业数据治理中的作用 简述 DataWorks 的核心功能模块及其应用场景 解释 DataWorks 中工作空间、项目、业务流程的三层逻辑关系 解释 DataWorks 中的 “节点”、“工作流” 和 “依赖关系” 设计 解释 DataWorks 中 “周期任…...

uniapp+Vue3 开发小程序的下载文件功能

小程序下载文件&#xff0c;可以先预览文件内容&#xff0c;然后在手机上打开文件的工具中选择保存。 简单示例&#xff1a;&#xff08;复制到HBuilder直接食用即可&#xff09; <template><view class"container-detail"><view class"example…...

Apache Log4j 2

目录 1. Apache Log4j 2 简介 1.1 什么是Log4j 2&#xff1f; 1.2 Log4j 2 的主要特性 2. Log4j 2 的核心组件 2.1 Logger 2.2 Appender 2.3 Layout 2.4 Filter 2.5 Configuration 3. Log4j 2 的配置 4. Log4j 2 的使用示例 4.1 Maven 依赖 4.2 示例代码 4.3 输出…...

4.2.2 ArrayList类

ArrayList类与List类的用法差不多&#xff0c;提供的方法也差不多。但是与List不同的是&#xff0c;ArrayList可以包含任意类型的数据&#xff0c;但是相应的&#xff0c;要使用包含的数据&#xff0c;就必须对数据做相应的装箱和拆箱&#xff08;关于装箱和拆箱&#xff0c;请…...

L1-088 静静的推荐

L1-088 静静的推荐 - 团体程序设计天梯赛-练习集 (pintia.cn) 题解 这里代码很简单&#xff0c;但是主要是循环里面的内容很难理解&#xff0c;下面是关于循环里面的内容理解&#xff1a; 这里 n 10 表示有 10 个学生&#xff0c;k 2 表示企业接受 2 批次的推荐名单&#…...

普及听力保健知识竞赛

普及听力保健知识竞赛 热点指数&#xff1a;★★★ 日期&#xff1a;3月3日 关键词&#xff1a;爱耳护耳、听力健康、耳部保健、听力科普 适合行业&#xff1a;医疗健康、健康护理、教育培训、公益组织 推荐功能&#xff1a;答题、H5宣传 宣传方向&#xff1a;广泛普及听力…...

小结: IGMP协议

IGMP&#xff08;Internet Group Management Protocol&#xff09;协议详解 IGMP&#xff08;Internet Group Management Protocol&#xff09;是IPv4 组播&#xff08;Multicast&#xff09;通信的控制协议&#xff0c;主要用于主机和路由器之间的组播成员管理。IGMP 允许主机…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

CSS3相关知识点

CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...