JMeter的使用,傻瓜式学习【上】
目录
前言
1、JMeter元件及基本使用作用域(简述)
1.1、基本元件
1.2、作用域的原则
1.3、元件执行顺序
3、JMeter三个重要组件
3.1、线程组
案例:
3.2、HTTP请求
3.3、查看结果树
响应体中,中文乱码解决方案:
前言
没有安装的伙伴,可以先看看,这篇博客:http://t.csdnimg.cn/eYMDr
1、JMeter元件及基本使用作用域(简述)
1.1、基本元件
基本元件有哪些?
我们进入后JMeter后,可以看到如下页面:

我们选中测试计划这个这一栏,可以进行重命名,不过重点不在这里,是我们要知道哪些是JMeter的原件,我们选中测试计划这一栏,右键选择添加一个线程组:

右键选择添加一个线程组:

下面的红框中,也是JMeter的元件~

各个元件的简单理解:
- Sampler:取样器。就是发送什么请求,例如http请求等,调用get、post方法发送请求
- 逻辑控制器:例如包含一些逻辑运算等
- 前置处理器:对请求参数化进行复制
- 后置处理器:提取响应中特定字段的值
- 断言:对提取出来的值与预期结果进行对比
- 定时器:例如控制循环发送请求的时间
- 配置元件:进行初始化测试数据
- 监听器:在控制台查看脚本运行的结果
看完上述的说明,可能还是有些懵,没关系,下面我们来一起继续学习,带着大家做一些案例,就会明白啦~
元件与组件有什么关系?
- 元件:多个类似功能组件的容器,可以当做是一个类
- 组件:容器中实现独立的某个功能,可以看做是一个方法
- 类中可以有多个方法
所以我们可以看到:

1.2、作用域的原则
- 取样器:核心,没有作用域
- 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用
- 其他元件:如果是某个取样器的子节点,则该元件只对其父节点起作用;如果其父节点不是取样器,则其作用域是该元件父节点下的其他节点所有后代节点(包括子节点、子节点的子节点等)
这里的第三点,我们就可以理解为,如果你是一个其他元件,而你的爸爸是取样器,那么你就可以管着你爸;如果说你爸爸不是取样器,那么你就可以管着你的新兄弟姐妹,以及你的兄弟姐妹的后代
1.3、元件执行顺序
在同一个作用域下(怎么看他们在在不在同一个作用域:同目录/级别/缩进)的不同元件的执行顺序:配置元件-前置处理程序-定时器-取样器-后置处理程序-断言-监听器
在同一个作用域的相同元件的执行顺序:从上到下一次执行
案例:

上述的执行顺序?
正解:定时器1- 请求 - 定时器1 - 定时器2 - 请求2
3、JMeter三个重要组件
3.1、线程组
什么是线程组?
JMeter中的线程组就是用于执行测试的一组用户

而这里的线程数,也就是我们所模拟的用户个数~
线程组的分类:

- Setup线程组:预测试操作,所有脚本之前执行
- Teardown线程组:测试后 操作,所有脚本之后执行
- 普通线程组:执行测试用例,可以有1个或者多个(并行 / 串行)
线程组的属性说明:

思考,以下场景:
- 模拟10个用户并行执行
- 模拟10个用户5s内启动完成
- 模拟2个用户各循环3次
- 模拟2个用户运行30s
- 模拟2个用户等待10s后开始执行
这些,场景都可以设置出来,就算是理解了这一块~
案例:
以下有两个场景:
- 配置200个线程数,循环次数为300
- 配置300个线程数,循环次数为200
实操:
访问百度为例:
添加以下组件:

添加位置:
- 线程组:选中测试计划 -

- http请求:选中线程组 -

- 察看结果树:选中测试计划 -

线程组1的设置:
就不用200、300了,运行时间有点长,我们使用20、30:
请求1的设置:

线程组2的设置:

请求2的设置:

运行所有:
运行指定的线程组:
运行线程组,运行时间:

点击察看结果树,可看到结果:

点击这里,可清空查看结果树中的数据:

分析这两个的区别:
- 线程数代表虚拟用户数,用户数越多,负载越大【例如,多个用户给服务器的压力比一个用户给的压力要大吧】
- 循环次数代表总的运行时间,次数越多,运行时间越长【运行多次的时间要比运行一次的时间长吧】
3.2、HTTP请求
该组件的作用:
向服务器发送http及https请求
位置:
上述的案例中已经说了:选中线程组-右键-添加-取样器-http请求
参数说明:

3.3、查看结果树

上述,翻译成中文,想必大家都能理解,就不解释了,下面我们主要来说一下,如何处理,响应体中,中文乱码的问题:
响应体中,中文乱码解决方案:
JMeter的安装路径下,找到bin目录---打开jmeter.properties文件,修改配置:
修改前:

修改后:

重启JMeter就可以啦~~~
相关文章:
JMeter的使用,傻瓜式学习【上】
目录 前言 1、JMeter元件及基本使用作用域(简述) 1.1、基本元件 1.2、作用域的原则 1.3、元件执行顺序 3、JMeter三个重要组件 3.1、线程组 案例: 3.2、HTTP请求 3.3、查看结果树 响应体中,中文乱码解决方案࿱…...
主定理(一般式)
主定理(Master Theorem)是用于分析递归算法时间复杂度的一个重要工具。它适用于形式化定义的一类递归关系,通常采用分治策略解决问题的情况。 目录 主定理简化版的局限主定理一般形式情况1: n l o g b a n^{log_{b}{a}} nlogba …...
WLAN的组网架构和工作原理
目录 WLAN的组网架构 FAT AP架构 AC FIT AP架构 敏捷分布式AP 下一代园区网络:智简园区(大中型园区网络) WLAN工作原理 WLAN工作流程 1.AP上线 (1)AP获取IP地址; (2)AP发…...
使用OBS Browser+访问华为云OBS存储【Windows】
背景 项目中使用华为云 S3 存储,java 代码中通过华为云 OBS 提供的esdk-obs-java 来访问文件。 但是,通过 JAVA SDK 方式不太方便运维,所以我们需要一款可视化的客户端软件。 华为云 OBS 自身也提供了一款客户端软件,名为 OBS Browser+。 OBS Browser+简介 OBS Browse…...
C++总结(3):类的动态内存分配、异常、类型转换运算符
文章目录 1 类的动态内存分配1.1 C动态内存分配1.2 拷贝构造函数1.3 赋值运算符(operator)重载 2 异常3 类型转换运算符 1 类的动态内存分配 1.1 C动态内存分配 在C/C中都可以使用malloc/free来分配内存,但C还有一种更好的方法:new和delete。下面以动态…...
折半搜索(meet in the middle)
介绍 折半搜索,又称 meet in the middle \text{meet in the middle} meet in the middle,指将整个搜索过程分为两部分,并对两部分分别进行搜索,最后得到两个答案序列,将这两个答案序列进行合并,即可得到最…...
【机器学习】loss损失讨论
大纲 验证集loss上升,准确率也上升(即将overfitting?)训练集loss一定为要为0吗 Q1. 验证集loss上升,准确率也上升 随着置信度的增加,一小部分点的预测结果是错误的(log lik 给出了指数级的惩…...
LeetCode 779. 第K个语法符号【递归,找规律,位运算】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
java try throw exception finally 遇上 return break continue造成异常丢失
如下所示,是一个java笔试题,考察的是抛出异常之后,程序运行结果,但是这里抛出异常,并没有捕获异常,而是通过finally来进行了流程控制处理。 package com.xxx.test;public class ExceptionFlow {public sta…...
设计模式——装饰器模式(Decorator Pattern)+ Spring相关源码
文章目录 一、装饰器模式的定义二、个人理解举个抽象的例(可能并不是很贴切) 三、例子1、菜鸟教程例子1.1、定义对象1.2、定义装饰器 3、JDK源码 ——包装类4、JDK源码 —— IO、OutputStreamWriter5、Spring源码 —— BeanWrapperImpl5、SpringMVC源码 …...
MATLAB R2018b详细安装教程(附资源)
云盘链接: pan.baidu.com/s/1SsfNtlG96umfXdhaEOPT1g 提取码:1024 大小:11.77GB 安装环境:Win10/Win8/Win7 安装步骤: 1.鼠标右击【R2018b(64bit)】压缩包选择【解压到 R2018b(64bit)】 2.打开解压后的文件夹中的…...
GEE错误——影像加载过程中出现的图层无法展示的解决方案
问题: // I dont know if some standard value exists for the radius, in the same, I will assume that some software would prefer to use square shape, but circle makes more sense to me. // pixels is noice if you want to zoom in and out to visualize…...
读图数据库实战笔记03_遍历
1. Gremlin Server只将数据存储在内存中 1.1. 如果停止Gremlin Server,将丢失数据库里的所有数据 2. 概念 2.1. 遍历(动词) 2.1.1. 当在图数据库中导航时,从顶点到边或从边到顶点的移动过程 2.1.2. 类似于在关系数据库中的查…...
QT如何检测当前系统是是Windows还是Uninx或Mac?以及是哪个版本?
简介 通过Qt获取当前系统及版本号,需要用到QSysInfo。 QSysInfo类提供有关系统的信息。 WordSize指定了应用程序编译所在的平台的指针大小。 ByteOrder指定了平台是大端序还是小端序。 某些常量仅在特定的平台上定义。您可以使用预处理器符号Q_OS_WIN和Q_OS_MACOS来…...
Maven配置阿里云中央仓库settings.xml
Maven配置阿里云settings.xml 前言一、阿里云settings.xml二、使用步骤1.任意目录创建settings.xml2.使用阿里云仓库 总结 前言 国内网络从maven中央仓库下载文件通常是比较慢的,所以建议配置阿里云代理镜像以提高jar包下载速度,IDEA中我们需要配置自己…...
由浅入深C系列八:如何高效使用和处理Json格式的数据
如何高效使用和处理JSON格式的数据 问题引入关于CJSON示例代码头文件引用处理数据 问题引入 最近的项目在用c处理后台的数据时,因为好多外部接口都在使用Json格式作为返回的数据结构和数据描述,如何在c中高效使用和处理Json格式的数据就成为了必须要解决…...
多媒体应用设计师 第16章 多媒体应用系统的设计和实现示例
口诀 思维导图 2020...
golang平滑重启库overseer实现原理
overseer主要完成了三部分功能: 1、连接的无损关闭,2、连接的平滑重启,3、文件变更的自动重启。 下面依次讲一下: 一、连接的无损关闭 golang官方的net包是不支持连接的无损关闭的,当主监听协程退出时,…...
用Python定义一个函数,用递归的方式模拟汉诺塔问题
【任务需求】 定义一个函数,用递归的方式模拟汉诺塔问题,三个柱子,分别为A、B、C,其中A柱子上有N个盘子,从小到大编号为1到N,盘子大小不同。现在要将这N个盘子从A柱子移动到C柱子上,但移动的过…...
二手的需求
案例1030 某天项目经理小王,从用户现场带回了需求,以图形的方式,交给了产品经理。告诉他就照这样设计,结果是项目经理放弃让产品经理出效果图。 原因是产品经理觉得项目经理带回来的需求有问题。项目经理解释产品经理不接受&…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
