性能测试工具—jmeter的基础使用

news2024/11/23 16:41:14

1.Jmeter三个重要组件

1.1线程组的介绍: 

特点:

  1. 模拟用户,支持多用户操作
  2. 多个线程组可以串行执行,也可以并行执行

线程组的分类:

  1. setup线程组:前置处理,初始化
  2. 普通线程组:编写脚本
  3. teardown线程组:后置处理,环境恢复等

线程组的属性: 

参数介绍:

1.2HTTP请求:

参数介绍:

作用:向服务器发送http及https请求

参数:

1.3查看结果树:

案例1: 查看结果树中的HTTP请求中,有多个子的HTTP请求

2.Jmeter参数化

2.1本质:

使用参数的方式来替代脚本中的固定的测试数据

2.2实现方式:

  1. 定义变量(最基础)
  2. 文件定义的方式(所有测试数据都是固定的情况下)
  3. 数据库的方式(灵活,业务测试常用)
  4. 函数的方式(灵活,业务测试常用)

2.3用户定义的变量

2.4用户参数:

2.5CSV数据文件设置:

2.6函数:

3.Jmeter断言:

3.1定义:

检查实际的返回结果是否与预期结果保持一致

自动校验机制:自动判断响应状态码(2xx:成功,4xx/5xx:失败)

3.2分类:

  1. 响应断言:对任意格式的响应数据进行断言
  2. json断言:对json格式的响应数据进行断言
  3. 持续时间断言:对响应时间进行断言

3.3响应断言:

参数:

3.4JSON断言

参数:

3.5断言持续时间:

4.Jmeter关联:

4.1定义:

请求之间有依赖关系,一个请求的响应数据作为另一个的请求参数来传递

4.2分类:

  1. 正则表达式提取器:提取任意格式的响应数据
  2. Xpath提取器:提取HTML格式的响应数据
  3. JSON提取器: 提取JSON格式的响应数据

4.3正则表达式介绍:

正则表达式:就是一个公式,或者说一套规则,使用这套规则可以从任意字符串中提取出想要的数据内容

结论:

通过一个正则表达式可以提取出多组数据,每组数据设置对应的左边界和右边界即可

每一组数据都可以有一个或者多个值

正则表达式提取器:

4.4xpath提取器

参数:

4.5json提取器:

参数:

JMeter属性:

5.自动录制脚本

原理:

5.1jmeter脚本录制步骤

1.添加HTTP代理服务器,并进行配置

•加HTTP代理服务器:测试计划(右键)->非测试元件->HTTP代理服务器

•配置代理服务器的参数

2.开启windows操作系统的浏览器代理

3. 启动代理服务器,开始录制

4. 在浏览器页面中进行操作,成功后,就能在JMeter当中看到抓取到的接口请求了。

5.2当使用代理的过程中,发现抓不到包,几个可能的情况:

  1. 过滤规则设置有问题
  2. 重启Jmeter代理服务器或者重启Jmeter
  3. 换浏览器来使用(Chrome、IE)
  4. 检查PC机中的代理设置是否处于可用状态
  5. 拔掉网线,抓包

6.逻辑控制器:

6.1如果(if)控制器:

6.2循环控制器:

6.3ForEach控制器:

7.定时器:

7.1同步定时器:

7.1.1使用同步定时器的操作步骤?

1.添加线程组,设置线程数为n

2.添加HTTP请求

3.添加同步定时器

•设置并发线程数:同时发送请求的虚拟用户数

•设置超时时间:

Ø建议设置:不设置的话,若没有达到设置的线程数会一直死等

Ø不能设置太小:等待时间后还没达到设置的线程数,会释放已到达的线程

4.添加查看结果树

5.添加监听器-聚合报告

7.2常数吞吐量定时器:

案例:

(1)一个用户以 20QPS (20 次/s) 的频率访问百度首页,持续一段时间,统计运行情况

案例:1、模拟100个用户同时访问百度首页,统计各种高并发情况下运行情况(2)2个用户针对 (服务器的QPS要求:20QPS (20 次/s)) 的频率访问百度首页,持续一段时间,统 计运行情况

7.3固定定时器:

案例:

(1)IHRM系统登录错误3次后,锁定1分钟,等待1分钟后重新输入正确的用户名密码登录成功

请求方法:POST

请求URL:http://ihrm-test.itheima.net/api/sys/login

请求头:Content-Type: application/json;charset=UTF-8

请求体:{"mobile":"13800000002","password":"123456"}

步骤:

添加线程组

添加HTTP请求1 - 错误1次

添加HTTP请求2 - 错误2次

添加HTTP请求3 - 错误3次

添加HTTP请求4 - 正确用户名密码

在HTTP请求4下,添加固定定时器

添加查看结果树

8.jmeter分布式:

8.1应用场景:

当单个测试机无法模拟用户要求的业务场景时,可以使用多台测试机进行模拟,就是Jmeter的分布式测试 .

8.2原理:

8.3分布式相关注意事项:

  1. 关闭防火墙
  2. 所有的控制机、代理机、服务器都在同一个网络上
  3. 所有机器的Jmeter和JAVA版本必须一致
  4. 关闭RMI SSL开关

8.4分布式配置与运行:

9.jmeter报告:

9.1聚合报告:

补充:

正常情况下,响应时间的结果取平均值

当响应时间最大值特别高(超出平均水平特别多),导致平均值不能代表正常/大部分水平时,可以使用百分比时间

9.2HMTL报告:

10.并发数计算:

10.1普通方法: 

并发tps = 总请求数/总时间

只能满足最基本的要求,但是不能很好覆盖系统正常的使用情况

10.2二八原则

并发tps = 总请求数 * 80% / 总时间 * 20%

满足系统绝大多数情况下的应用场景的需要

根据业务运营数据的统计计算(通常用来做稳定性测试

并发TPS = 有效请求数 * 80% / 有效时间 * 20%

当运营数据统计越精确时,计算出的并发TPS与实际的越接近

根据用户峰值业务操作来计算(通常用来做压力测试

并发TPS = 峰值请求数 / 峰值时间 * 系数

满足峰值请求时间段内的负载量,系数取决于项目组对于未来业务量的评估

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

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

相关文章

遥感数据集制作(Potsdam数据集为例):TIF图像转JPG,TIF标签转PNG,图像重叠裁剪

文章目录 TIF图像转JPGTIF标签转PNG图像重叠裁剪图像重命名数据集转COCO格式数据集转VOC格式 遥感图像不同于一般的自然图像,由于波段数量、图像位深度等原因,TIF图像数据不能使用简单的格式转换方法。本文以Potsdam数据集为例,制作能够直接用…

你了解 pom.xml 吗

你了解pomxml吗 springboot 是 java 利器&#xff0c;几乎每个写 java 的同学都会用&#xff0c;但是你了解 pom.xml 吗&#xff1f; 这篇干货查漏补缺。 首先我们创建个 springboot 项目 都选了默认设置&#xff1a; 我把这篇完整粘贴出来 pom.xml <?xml version&quo…

网络安全|隐藏IP地址的5种不同方法

隐藏计算机的IP地址在互联网在线活动种可以保护个人隐私&#xff0c;这是在线活动的一种常见做法&#xff0c;包括隐私问题、安全性和访问限制内容等场景。那么如何做到呢?有很5种方法分享。每种方法都有自己的优点和缺点。 1. 虚拟网络 当您连接到虚拟服务器时&#xff0c;您…

JVM内存模型最新面试题(持续更新)

问题&#xff1a;java中创建的对象一般放在哪里&#xff1f;(全流程包含从创建到回收) 回答 大部分对象在堆中&#xff0c;这个基本都知道&#xff1b; 少部分对象是会在栈中的&#xff0c;比如作用域不局限于方法内的方法内部变量&#xff0c;这类对象的特征一般就是生命周期…

第33次CSP认证Q3:化学方程式配平

&#x1f344;题目描述 为了配平一个化学方程式&#xff0c;我们可以令方程式中各物质的系数为未知数&#xff0c;然后针对涉及的每一种元素&#xff0c;列出关于系数的方程&#xff0c;形成一个齐次线性方程组。然后求解这个方程组&#xff0c;得到各物质的系数。这样&#x…

【C语言】通讯录系统实现

目录 1、通讯录系统介绍 2、代码分装 3、代码实现步骤 3.1制作菜单函数以及游戏运行逻辑流程 3.2、封装人的信息PeoInfo以及通讯录Contact结构体类型 3.3、初始化通讯录InitContact函数 3.4、增加联系人AddContact函数 3.5、显示所有联系人ShowContact函数 3.6、删除联系人D…

视频号小店是个风口吗?今年去做是明智的选择吗?一篇详解!

大家好&#xff0c;我是电商小V 视频号才刚刚推出一年半的时间&#xff0c;可以说自从推出之后这个项目的知名度一直是处于飙升的状态&#xff0c;一直处于爆火的状态&#xff0c;也是吸引了很多想做电商&#xff0c;想去创业的小伙伴&#xff0c;最主要的就是视频号小店背靠的…

流程图用什么软件做?选择这4款,让工作事半功倍

流程图用什么软件做&#xff1f;流程图是一种直观、清晰的图形表示法&#xff0c;它通过节点、箭头和符号等元素&#xff0c;精确地展示出一系列步骤、决策点以及操作过程。这种图形化的呈现方式不仅简化了复杂信息的处理&#xff0c;还使得读者能够迅速把握整体流程&#xff0…

C++容器:list(双向链表)

一丶list介绍 C中的list容器底层确实是以双向链表的形式实现的。 list容器是C标准模板库&#xff08;STL&#xff09;中的一部分&#xff0c;它提供了对列表数据结构的实现。 双向链表结构&#xff1a;list容器的每个元素都是通过指针链接在一起的&#xff0c;每个元素都包含…

C++11 新特性 常量表达式 constexpr

为了解决常量无法确定的问题&#xff0c;C11在新标准中提出了关键字constexpr&#xff0c;它能够有效地定义常量表达式&#xff0c;并且达到类型安全、可移植、方便库和嵌入式系统开发的目的。 一、常量的不确定性 在C11标准以前&#xff0c;我们没有一种方法能够有效地要求一…

为什么Python中会有集合set类型?

知乎上有人提问&#xff0c;为什么Python有了列表list、元组tuple、字典dict这样的容器后&#xff0c;还要弄个集合set&#xff1f; 确实set和list、tuple、dict一样&#xff0c;都是python的主要数据类型&#xff0c;它们的作用是不同的。 因为set是数学意义上的集合&#xf…

战网国际服加速器用哪个好 暴雪战网好用加速器介绍

战网国际版&#xff0c;又称Battle.net环球版&#xff0c;是暴雪娱乐操盘的全球性游戏互动平台&#xff0c;它跨越地理界限&#xff0c;服务于全球游戏爱好者。与地区限定版本相异&#xff0c;国际版赋予玩家自由进入暴雪旗下众多经典游戏的权利&#xff0c;无论身处何方&#…

使用C++实时读取串口数据(window使用已编译LibModbus库并用QT实现一个实时读取串口数据)

Modbus协议简介&#xff1a; 在工业自动化领域&#xff0c;Modbus协议是一个应用层通讯协议&#xff0c;它为电子设备之间的通信提供了一个常用的标准方法。Modbus协议最初由Modicon公司&#xff08;现为施耐德电气的一部分&#xff09;在1979年发明用于其可编程逻辑控制器&…

AIGC行业现在适合进入吗

AIGC行业目前正处于快速发展阶段,市场需求正处于爆发期,上大学网&#xff08;www.sdaxue.com&#xff09;认为&#xff0c;对于有兴趣的个人或企业而言&#xff0c;现在可能是一个适合进入的时机&#xff0c;以下是具体的分析&#xff0c;供大家参考&#xff01; 一、AIGC行业前…

java医院信息系统HIS源码SaaS模式Java版云HIS系统 接口技术RESTful API + WebSocket + WebService

java医院信息系统HIS源码SaaS模式Java版云HIS系统 接口技术RESTful API WebSocket WebService 云HIS是基于云计算的医疗卫生信息系统&#xff08;Cloud-Based Healthcare Information System&#xff09;&#xff0c;它运用云计算、大数据、物联网等新兴信息技术&#xff0c;…

熬了快两个月,终于拿到了淘天后端offer!

今年的暑期实习挺难找的&#xff0c;很多同学忙了几个月到现在还没有一个offer&#xff0c;真的很常见&#xff01;没找到暑期实习的同学千万不要太焦虑&#xff0c;可以留意留意日常实习&#xff0c;日常实习也找不到&#xff0c;那就去完善自己的项目经历&#xff0c;认真准备…

软件工程期末复习(8)需求的表达方法和状态转换图

需求的表达方法 系统模型 需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型&#xff0c;解决目标系统 “做什么” 的问题 通常软件开发项目是要实现目标系统的物理模型。目标系统的具体物理模型是由它的逻辑模型经实例化&#xff0c;即具体到某个业务领域而…

苹果电脑里面的资料为什么不能拷贝到硬盘 mac硬盘权限限制怎么解决 mac东西拷不进硬盘怎么办

你在使用Mac电脑的时候有没有遇到过文件无法拷贝的情况呢&#xff1f;这种情况多见于Mac电脑使用U盘或者移动硬盘的时候&#xff0c;不少用户都发现&#xff1a;可以正常读取U盘里的数据但是无法拷贝文件进去&#xff0c;为什么会有这种情况呢&#xff1f; 一、mac东西拷不进硬…

macbook同时配置github,gitlab,gitee

背景&#xff1a;我的本地环境之前已经配置了github与gitlab的共存&#xff0c;现在想要添加一个gitee的项目&#xff0c;我的全局的账号和邮箱配置已经配置为了gitlab的账号邮箱&#xff0c;下边新增gitee的配置时没有对这一块儿的变更。新增了gitee后&#xff0c;我也对gitla…

webpack优化构建速度示例-IgnorePlugin:

IgnorePlugin是webpack的一个内置插件&#xff0c;允许你忽略某些特定的模块或文件 webpack.config.jsconst config {entry: ./src/index.js,output: {filename: main.js},mode: development, }module.exports config;src/index.js import moment from moment console.log(mo…