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

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的元件~ 

       

各个元件的简单理解:

  1. Sampler:取样器。就是发送什么请求,例如http请求等,调用get、post方法发送请求
  2. 逻辑控制器:例如包含一些逻辑运算等
  3. 前置处理器:对请求参数化进行复制
  4. 后置处理器:提取响应中特定字段的值
  5. 断言:对提取出来的值与预期结果进行对比
  6. 定时器:例如控制循环发送请求的时间
  7. 配置元件:进行初始化测试数据
  8. 监听器:在控制台查看脚本运行的结果

        看完上述的说明,可能还是有些懵,没关系,下面我们来一起继续学习,带着大家做一些案例,就会明白啦~ 

元件与组件有什么关系?

  • 元件:多个类似功能组件的容器,可以当做是一个类
  • 组件:容器中实现独立的某个功能,可以看做是一个方法
  • 类中可以有多个方法

所以我们可以看到:

1.2、作用域的原则

  1. 取样器:核心,没有作用域
  2. 逻辑控制器:只对其子节点中的取样器和逻辑控制器起作用
  3. 其他元件:如果是某个取样器的子节点,则该元件只对其父节点起作用;如果其父节点不是取样器,则其作用域是该元件父节点下的其他节点所有后代节点(包括子节点、子节点的子节点等)

        这里的第三点,我们就可以理解为,如果你是一个其他元件,而你的爸爸是取样器,那么你就可以管着你爸;如果说你爸爸不是取样器,那么你就可以管着你的新兄弟姐妹,以及你的兄弟姐妹的后代

1.3、元件执行顺序

        在同一个作用域下(怎么看他们在在不在同一个作用域:同目录/级别/缩进)的不同元件的执行顺序:配置元件-前置处理程序-定时器-取样器-后置处理程序-断言-监听器

        在同一个作用域的相同元件的执行顺序:从上到下一次执行

案例:

上述的执行顺序?

正解:定时器1- 请求 - 定时器1 - 定时器2 - 请求2


3、JMeter三个重要组件

3.1、线程组

什么是线程组?

JMeter中的线程组就是用于执行测试的一组用户

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

线程组的分类:

  1. Setup线程组:预测试操作,所有脚本之前执行
  2. Teardown线程组:测试后 操作,所有脚本之后执行
  3. 普通线程组:执行测试用例,可以有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、查看结果树 响应体中,中文乱码解决方案&#xff1…...

主定理(一般式)

主定理(Master Theorem)是用于分析递归算法时间复杂度的一个重要工具。它适用于形式化定义的一类递归关系,通常采用分治策略解决问题的情况。 目录 主定理简化版的局限主定理一般形式情况1: n l o g b a n^{log_{b}{a}} nlogb​a …...

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 某天项目经理小王,从用户现场带回了需求,以图形的方式,交给了产品经理。告诉他就照这样设计,结果是项目经理放弃让产品经理出效果图。 原因是产品经理觉得项目经理带回来的需求有问题。项目经理解释产品经理不接受&…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...