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

全网最详细,Jmeter性能测试-性能基础详解,参数化函数取值(二)

目录:导读

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


前言

参数化详解
Jmeter中可以实现变量参数化的方法可以使用:

用户定义变量;
用户参数;

这两个的区别

用户定义变量用户参数
作用域全局的,可以作用于整个测试计划(可以跨线程组)局部的,只能作用于当前线程组或当前取样器。
元件配置元件前置处理器
执行顺序因为是配置元件,所以执行顺序是最高的比配置元件要低
获取值启动运行时,获取一次值,在运行过程中不会再动态获取值,值不会再发生变化。在启动运行时,会获取一次值,在运行过程中,还可以动态获取值。

用户定义变量

添加配置元件->用户自定义变量
在脚本中调用变量,可以使用:${变量名}

函数式也能作为值放进变量内

请添加图片描述

用户参数

添加前置处理器->用户参数
在脚本中调用变量,可以使用:${变量名}

请添加图片描述

注意,里面有个每次迭代更新一次的选项。当勾选之后,每次迭代当前线程组时才会更新一次数据。

如果线程组内有多个请求都是用了这里的参数,那在一次迭代中,所有的参数的值都是固定的,只有到了下一次迭代才会更新。

反之,如果没勾,那每次只要遇到需要用到这里面的参数时,都会获取一次新的参数值。

请添加图片描述

函数

Jmeter自带了一些函数,可以通过tools->函数助手对话框查看函数。

找到想要的函数,如下面的Random是个随机函数,设定随机函数的参数,最下值为1, 最大值为99,点生成就会自动生成函数式,只需要复制这个函数式放在脚本中使用即可。

请添加图片描述

常用函数

所有的函数式除了可以直接使用以外,还可以放进用户定义变量或者参数变量之中,使用方式都是一样的。

拼接函数(__V)

这个函数可以将变量名和
现在有一个场景:有3个参数,参数名分别是var_1、var_2、var_3,我想要引用这3个参数。

请添加图片描述

如果像让它按顺序取值,如第一次迭代取var_1,第二次迭代取var_2…,这种场景就用得上__V函数了。

使用函数助手,找到V函数,第一个参数里输入var_${__counter(,) ,点生成得到一个函数,把它放到脚本里就可以使用了

请添加图片描述

重新运行,迭代3次,取到3个值

请添加图片描述

跨线程组取值

jmeter的 “属性”,跨线程组取值与属性有很大的关联。

在jmeter目录下,以.properties结尾的文件都是Jmeter的属性配置文件。
这些属性都是Jmeter工具自带带有的标签。

分为:
静态属性:写在properties文件中的属性信息,都是静态属性;
动态属性:在运行过程中,动态定义的属性;

由于属性在Jmeter本身所具有的标签,因此在jmeter内部不管是哪个线程组都可以使用,跨线程组取值也是基于这个特性。

回归正传,要实现跨线程组取值,有2个必备函数:

__P: 获取属性(也可以用__property代替);
__setProperty:设置动态属性;

例子:
在属性中添加一个age,值是1~99随机

请添加图片描述

在测试计划右键->非测试元件->属性显示,可以查看属性
可以看到,属性里已经添加了一个age,值是56

请添加图片描述

然后另建一个线程组,并且添加一个调试取样器一个监听器
使用_P从属性中取值

请添加图片描述

运行,然后就发现可以取到值了,值是72,值会变是因为又重新运行了。

请添加图片描述

注意:
如果有多个线程组同时启用,这些线程组之间并不一定是按上下顺序来执行的,默认是并行的,所以有可能出现下面的线程执行比前面的线程组提前完成。

也因此,使用这种办法跨线程组,偶尔会出现取到的值是同一个,或者取到的是空值。

不过在性能测试场景下,这种并不是问题,毕竟就像登录时,也不是每个人都会百分百输入正确的密码,偶尔几个人输错密码,然后服务端提示密码错误,这种对于性能测试是属于正常场景。

用户定义变量虽然是全局的,虽然也是可以跨线程组,但要记住,用户定义变量只有在运行时会取一次值!!运行过程中就不会再改变了!

改变线程组执行顺序(不推荐改变)

默认情况下,Jmeter的线程组是并行的。
但既然是默认,那就代表可以改了,改的方法也很简单,在测试计划中,勾选“独立运行每个线程组”即可。这样,只有上一个线程组运行完成了,才会执行下面的线程组。

请添加图片描述

在性能测试下,不需要勾选!

勾选了之后是第一个线程组运行完之后才开始运行第二个线程组,如果第一个线程组要运行10次,那得等着10次运行完成,第二个线程组才会启动,这样就算取值也只是去到第一个线程组最后一次运行产生的结果而已。

这个会极大的影响性能测试的混合场景测试,在性能测试中,不会去勾选这个。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

勇敢追求自己的梦想,不断挑战自我。失败并不可怕,它是成功之母。只要坚持,每个人都有机会成为自己想成为的那个人。

生命不息,奋斗不止;路漫漫其修远兮,吾将上下而求索;只有疯狂才能有真正的进步;要想改变生活,先改变自己;做一个积极向上的人,收获自然乐无穷。

不是因为事情难我们就不去做,而是因为我们不去做才让事情变得更难。迎着挑战,勇往直前,永不言败,最终的胜利属于那些坚持不懈的人们。

相关文章:

全网最详细,Jmeter性能测试-性能基础详解,参数化函数取值(二)

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

选择排序的简单理解

详细描述 选择排序的工作原理是:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾&#xf…...

使用js封装一个循环链表

直接不说废话,直接上代码,这里继承了单向链表的类LinkList ,可以查看之前的文章,点这里 class Node {constructor(element) {this.element element;this.next null;} }class CirularLinkedList extends LinkList {constructor(…...

NumPy 秘籍中文第二版:二、高级索引和数组概念

原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 在本章中,我们将介绍以下秘籍: 安装 SciPy安装 PIL调整图像大小比较视图和副本翻转 Lena花式索引位置列表索引布尔值索引数独的步幅技巧广播数…...

新品-图灵超频工作站GT430M介绍

曾经历史 UltraLAB GTxxxM系列是西安坤隆公司专注于超频高速计算应用的图形工作站。 2008年 获取排名第一、二的中国象棋软件均采用该机型。 2019年 推出采用Intel 超频Xeon(28核4.8GHz)显著提升电磁仿真频域算法求解、第一个解决8K视频解码与渲染。 今…...

js时间格式化精确到毫秒

/*** 数字前置补零* param value 值* param length 位数* returns {string}*/ export function digit(value, length 2) {if (typeof value "undefined" ||value null ||String(value).length > length) {return value;}return (Array(length).join("0&qu…...

QT样式表详解

本文详细介绍qt的样式表,包含样式表如何使用,常见语句和选择器。 背景说明 样式表用于设置外观,他是设置控件外观的方式之一。其他方式如下: 控件的成员函数,如QWidget::setBackground样式表调色板 优先级依次提高…...

最值得入手的好物有哪些,推荐几款实用的数码好物

随着科技的进步,越来越多的数码产品不断的出现在我们的生活中,这其中也不乏一些实用的数码产品,让我们可以享受更舒适的生活,提高我们的工作效率。下面就给大家分享几款我最近使用过的一些数码产品,它们不仅功能强大而…...

【20230407】NVIDIA显卡算力、Jetson比较

1 基本概念 1.1 算力单位 TOPS:指的是每秒钟可以执行的整数运算次数,它代表着计算机在处理图像、音频等任务时的处理能力。TOPS的单位是万亿次每秒(trillion operations per second)。一般是指整数运算能力INT8。 TFLOPS&#…...

dsl语法

查询 1.查询所有(默认有分页查询) #查询所有 GET /hotel/_search {"query": {"match_all": {}} } 2.match查询(条件查询)-----包含四川和外滩的信息,信息匹配度越高越靠前,两者存在一…...

不让CPU偷懒

文章资料摘自——《程序员的自我修养》 为了防止cpu执行完该程序后需要等待程序员手动加入下一个程序,才可以继续运行,这里大大浪费了cpu的效率,要知道cpu是十分昂贵的。 多道程序 在计算机发展的早期,CPU使用十分不方便&#x…...

动力节点王鹤SpringBoot3笔记——第七章 视图技术Thymeleaf

目录 第七章 视图技术Thymeleaf 前言 7.1 表达式 7.2 if-for 第七章 视图技术Thymeleaf 前言 Thymeleaf 是一个表现层的模板引擎, 一般被使用在 Web 环境中,它可以处理 HTML, XML、 JS 等文档,简单来说,它可以将 JSP 作…...

从比特保存和信息保存看数字资源长期保存

引用IBM以色列海法实验室的观点,数字资源长期保存包含两个层面含义,即比特保存与信息保存。也就是说,要实现数字资源的长期保存,必须同时做到比特保存和信息保存。 一 ​概念 01 比特保存,也叫物理保存,主…...

兰伯特光照模型(Lambert Lighting)和半兰伯特光照模型(Half-Lanbert)

关于漫反射 光打到凹凸不平的平面上,光线会被反射到四面八方,被称为漫反射 关于这种模型,由于光线由于分散,所以进入人眼的光线强度和观察角度没有区别 在A点和B点接收到的光线强度是一样的 在漫反射下,光线强度只和光…...

Python 进阶指南(编程轻松进阶):二、环境配置和命令行

原文:http://inventwithpython.com/beyond/chapter2.html 环境配置是配置你的计算机环境,以便你写代码的过程。这包括安装任何必要的工具,配置它们,以及处理安装过程中的任何问题。没有一键配置这种傻瓜式操作过程,因为…...

求职半年,三月成功拿到阿里offer,分享一波面经...

前言 不论是校招还是社招都避免不了各种⾯试、笔试,如何去准备这些东⻄就显得格外重要。不论是笔试还是⾯试都是有章可循的,我这个“有章可循”说的意思只是说应对技术⾯试是可以提前准备,所谓不打无准备的仗就是这个道理。 以下为大家&…...

餐饮店的运营需要考虑哪些方面

餐饮店的运营需要多方面的考虑和规划,以下是传递宝APP上一些常用的餐饮店运营方法: 1.定位:明确餐饮店的定位和目标客户群体,针对不同的客户需求,提供个性化的服务和产品,比如是附近的上班族,还…...

Multi-modal Alignment using Representation Codebook

Multi-modal Alignment using Representation Codebook 题目Multi-modal Alignment using Representation Codebook译题使用表示代码集的多模态对齐期刊/会议CVPR 摘要:对齐来自不同模态的信号是视觉语言表征学习(representation learning)的…...

关于vector的emplace_back和push_back的区别

实验代码&#xff1a; class A { public:A(int x) {x x;cout << "construct A" << endl;}A(const A& a) {x a.x;cout << "copy construct A" << endl;}A(const A&& a) {cout << "Move construct A"…...

Vue——表单输入绑定

目录 基本用法​ 文本 多行文本 复选框​ 选择器​ 值绑定​ 复选框 单选按钮 选择器选项 修饰符​ .lazy​ .number​ .trim​ 组件上的 v-model​ 在前端处理表单时&#xff0c;我们常常需要将表单输入框的内容同步给 JavaScript 中相应的变量。手动连接值绑定…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...