全网最详细,Jmeter性能测试-性能基础详解,控制器不同选择(四)

news2025/2/27 2:58:08

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

逻辑控制器

提前说明,逻辑控制器≠混合场景
混合场景是不同数量的并发用户发起不同接口的请求,关于混合场景前面文章已分析写过。

循环

jmeter中有有两个用于循环的逻辑控制器,分别是“循环控制器”和“foreach控制器”。
如果学过Python,可以这么理解,循环控制器就是for i in range(10), 指定循环次数;

而foreach控制器则是for i in [对象],循环的次数是不定的,完全由对象的可迭代次数来决定。

循环控制器

循环控制器非常简单,指定次数或者勾选永远,让他循环指定的次数或者永远循环下去即可。

请添加图片描述

Foreach控制器

首先在用户参数中添加5个变量,变量名分别是var_1、var_2…var_5

请添加图片描述

然后添加foreach控制器

请添加图片描述

变量前缀为var;
开始循环字段,由于是不包含第一个的,所以要输入0;
结束循环字段输入5,因为是包含的;
输出变量名称为f, 即脚本中如果要使用这些变量,使用${f}即可;
由于变量名和数字之间有“_”,所以要勾上“数字之前加上下划线”;

然后创建一个调试取样器,把名称改为${f},然后允许查看结果,就会循环5次。

请添加图片描述

条件控制器

默认情况下,条件框中必须要使用__jexl3或者__groovy函数的计算结果,要为true或false

请添加图片描述

如果不勾选lnterpret Condition as Variable Expression?,那就会将里面的内容作为表达式进行运算,而且这里是作为js的表达式进行运算,因此也可以进行and、or等逻辑语的运算。

请添加图片描述

事务控制器

在jmeter中,默认一个取样器就是一个事务。而事务控制器就是控制其子集取样器(n),合并为一个事务。

然后,这里又涉及到一个概念,Tps是服务器每秒处理的事务数。如果使用事务控制器合并了多个取样器之后,那么Tps就是计算多个事务总的时间。

添加逻辑控制器->事务控制器。要注意,如果想要将多个取样器合并为1个事务,那必须要勾选Generate parent sample

请添加图片描述

请添加图片描述

请添加图片描述

如果再把lnclude duration of timer and pre-post processors in generated sample勾选了,那如果取样器有前置处理和后置处理的时间都会记录到聚合报告。

最后,这里有个问题,在性能测试中,是否要勾选Generate parent sample?

首先要明确一点,性能测试是先做单接口的性能测试,然后再做多借口的性能测试。因此只有在做多接口合并的时候才需要勾选。

也因此,事务控制器的使用场景是在需要验证某一个流程(例如下单流程、登录流程)的性能指标。

另外补充一点,一个流程的性能指标并不是把这个流程每个接口的指标相加!

一套完整的性能流程应该是先用单个取样器,做出某个接口的性能测试指标,然后再做出多个接口的性能指标,然后再使用事务控制器并勾选Generate parent sample,做出业务的性能指标,把所有业务都做出来之后,再合并做出整个系统的性能指标。

临界控制器

这是个比较特殊的控制器,它默认有一个固定锁名称,会把性能测试中的并行执行强制转换为串行,他会要求每个并发用户按照取样器的顺序走。
但既然是默认,那就还是可以改变,只要让锁名称动态生成即可。推荐使用线程号。

请添加图片描述

仅一次控制器

这个控制器的意思并不是只运行一次,而是一个线程只执行一次。只有一个并发用户数时,这个其实看不出什么感觉,但是如果是多用户的时候就能看到效果了
5个线程,循环10次。仅一次控制器每个线程只会运行1次。

请添加图片描述

Switch控制器

可以直接跳转到指定的脚本去运行,如下图,设置跳转到q2取样器,那就只会运行q2,q1和q3不会运行了

请添加图片描述

请添加图片描述

另外,如果直接在Switch控制器中填入数字,这个是按下标去找到对应的取样器,而下标是从0开始了。

请添加图片描述

随机控制器&随机顺序控制器

随机控制器是把挂载下的所有取样器中随机执行一个。
随机顺序控制器则是把挂载下的所有取样器的随机排序后再执行。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要心怀信念,勇敢追梦,任何困难都能战胜;只要不断努力,坚持不懈,成功就会向你招手。愿你在奋斗中成长,收获人生的美好与幸福。

勇敢地去追求你想要的生活,即使路途坎坷,也要坚定不移,因为只有拼搏奋斗,才能实现自己的梦想,才能过上真正属于自己的美好人生。

只要心怀梦想,脚踏实地向前,无论跌倒多少次,也要坚定不移地站起来,相信自己,保持专注,永不放弃,成功就在前方等待着你!

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

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

相关文章

机器学习实战:Python基于支持向量机SVM-RFE进行分类预测(三)

文章目录1 前言1.1 支持向量机的介绍1.2 支持向量机的应用2 demo数据集演示2.1 导入函数2.2 构建数据集拟合2.3 预测模型及可视化3 实例演示分类(非SVM)3.1 导入函数和数据3.2 简单线性分类3.3 最大间隔决定分类4 实例演示分类(SVM&#xff0…

面试之Java的SPI机制详细讲解你会吗?

很多小伙伴对SPi不是很熟悉,今天我给大家详细讲解分享下: Java之SPI机制详细目录 1: SPI机制简介 2: SPI原理 3: 使用场景 4: 源码论证 5: 实战 6: 优缺点 6.1 优点 6.2 缺点 Java之SPI机制详解 1: SPI机制简介 SPI 全称是 Service Provider Interface…

Django整合mysqlclinet步骤

准备工作 要在 Django 中使用 MySQL 数据库,您需要完成以下步骤: 安装 MySQL 服务器和客户端。你可以从官方网站下载并安装:https://www.mysql.com/downloads/ 安装 mysqlclient。mysqlclient 是一个 Python 的第三方库,用于连接…

chapter-7数据库事务

以下课程来源于MOOC学习—原课程请见:数据库原理与应用 考研复习 DBMS保证系统中一切事务的原子性、一致性、隔离性和持续性 DBMS必须对事务故障、系统故障和介质故障进行恢复 恢复中最经常使用的技术:数据库转储和登记日志文件 恢复的基本原理&#…

十二、网络规划与设计

(一)网络设计基础 1、网络系统生命周期 (1)四阶段周期(重叠) 构思与规划阶段、分析与设计阶段、实施与构建阶段、运行与维护阶段 特点:能够快速适应新的需求变化,成本低&#xf…

【SQL 初阶教程】一文轻松玩转 SQL

目录 一、SQL 通用语法 二、SQL 语句的分类 三、DDL语句 DDL——数据库操作 查询所有数据库 语句: SHOW DATABASES;(大小写均可,建议大写) 创建数据库HSK 语句:CREATE DATABASE HSK; 删除数据库HSK 语句 &#…

关于本地git通过ssh链接github时 time out问题的解决方法

目录问题描述解决方法问题描述 我们如果想要用git ssh链接到远端github,进行repo的clone等操作时,会进行如下的操作: 首先在ssh端命令生成rsa秘钥,命令如下: ssh-keygen -t rsa -C “你的git绑定的邮箱名字”然后在g…

【HBase-读写流程】HBase的读写流程与内部执行机制

【HBase-读写流程】HBase的读写流程与内部执行机制1)HBase 读取数据流程1.1.文字描述1.2.流程图2)HBase 写入数据流程2.1.文字描述2.2.流程图3)flush 机制与 compact 机制的原理3.1.文字描述3.2.流程图1)HBase 读取数据流程 1.1.…

游戏开发之Unity2021URP项目场景的构建

地面的修改和编辑:地面插件的使用 打开包管理器,在左边的包那里选择“Unity注册表”,在右边进行搜索“Polybrush”,之后选择右下角的安装 安装完之后要选择样本中的URP进行导入,因为我们的项目是URP渲染管线的&#x…

IronOCR for .NET crack,IronOCR的独特功能

IronOCR for .NET crack,IronOCR的独特功能  在IronTesseract上添加了新的“ReadPdfAndOverlayText”方法,该方法允许您添加文本并保留原始PDF书签/注释。 添加了对存储在应用程序子文件夹中的.config和.json文件中的许可证密钥的支持。 将IronSoftware.System.Dra…

shell 函数和数组作业

1、编写函数,实现打印绿色OK和红色FAILED,判断是否有参数,存在为Ok,不存在为FAILED 2、编写函数,实现判断是否无位置参数,如无参数,提示错误 3、编写函数实现两个数字做为参数,返回最大值 4、…

Minecraft 1.12.2模组开发(五十六) 网络(Networking)

我们本次在模组中实现客户端向服务器发送数据的功能。 演示效果演示效果演示效果 1.新建packet包,包中新建PacketHandler类: PacketHandler.java package com.joy187.mcjoygun.packet;import com.joy187.mcjoygun.Main; import com.joy187.mcjoygun.u…

Huggingface微调BART的代码示例:WMT16数据集训练新的标记进行翻译

BART模型是用来预训练seq-to-seq模型的降噪自动编码器(autoencoder)。它是一个序列到序列的模型,具有对损坏文本的双向编码器和一个从左到右的自回归解码器,所以它可以完美的执行翻译任务。 如果你想在翻译任务上测试一个新的体系…

Java Stream API 操作完全攻略:让你的代码更加出色 (四)

前言 Java Stream 是一种强大的数据处理工具,可以帮助开发人员快速高效地处理和转换数据流。使用 Stream 操作可以大大简化代码,使其更具可读性和可维护性,从而提高开发效率。本文将为您介绍 Java Stream 操作的所有方面,包括 ran…

交友项目【通用设置】三个功能实现

目录 1:交友项目【通用设置】 1.1:查询通用设置 1.1.1:接口地址 1.1.2:流程分析 1.1.3:代码实现 1.2:设置陌生人问题 1.2.1:接口地址 1.2.2:流程分析 1.2.3:代码…

Python 小型项目大全 51~55

五十一、九十九瓶的变体 原文:http://inventwithpython.com/bigbookpython/project51.html 在歌曲“九十九瓶”的这个版本中,该程序通过删除一个字母、交换一个字母的大小写、调换两个字母或重叠一个字母,在每个小节中引入了一些小的不完美。…

4月,我从外包公司离职了

先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

python学习

1.安装 Download Python | Python.org 安装时,点击添加路径。 1.1 python的解释器 我们把代码写进.py结尾的文件里,然后 python 路径文件名就可以运行它了。 2.字面量 例如print("我们"),"我们",就是字符串字面量,…

简化你的代码,提高生产力:这10个Lambda表达式必须掌握

前言 Lambda表达式是一种在现代编程语言中越来越常见的特性,可以简化代码、提高生产力。这篇文章将介绍10个必须掌握的Lambda表达式,这些表达式涵盖了在实际编程中经常用到的常见场景,例如列表操作、函数组合、条件筛选等。通过学习这些Lambd…

JUC源码系列-CountDownLatch源码研读

前言 CountDownLatch是一个很有用的工具,latch是门闩的意思,该工具是为了解决某些操作只能在一组操作全部执行完成后才能执行的情景。例如,小组早上开会,只有等所有人到齐了才能开;再如,游乐园里的过山车&…