Jmeter的几种参数化方式

1.为什么要做参数化?

        在用jmeter脚本进行压测的时候,为了更真实的模拟起到更好的效果,我们需要让参数动态变化起来,也就是参数化。通过参数化我们也可以更好、更灵活的维护我们的测试脚本。

2.参数化的方式

        能够实现参数化的方式有很多种,比如定义全局变量、通过函数助手、从文件中读取等方式,这里先只描述几种我比较熟悉的参数化方式,其它的之后再进行补充完善。

2.1.定义全局变量

        定义全局变量非常简单,只需要在测试计划页面“用户定义的变量”下维护变量名和对应的变量值,然后在需要调用变量的地方使用${变量名}即可调用变量实现参数化,如下图所示。

2.2.函数助手

        函数助手也是我们经常用于参数化的方式之一,可以选择随机数(_Random)或者随机字符串(_RandomString)通过生成随机数据来进行参数化。

2.2.1.随机数

        想用随机数可以在函数助手中选择_Random函数,然后设置最小值和最大值,点击生成按钮可以生成随机数的表达式,将其拷贝到所需要引用的地方即可,如生成1000~9999范围内的随机数,如下图所示。

2.2.2.随机字符串

         想用随机字符串可以在函数助手中选择_RandomString函数,然后设置字符串长度和取值范围,点击生成按钮可以生成随机字符串的表达式,将其拷贝到所需要引用的地方即可,如生成1000~9999范围内的随机数,如下图所示。

2.3.从文件中读取

        在函数助手中选择_CSVRead函数,在“用于获取值的CSV文件|*别名”处维护待参数化文件的路径,在“CSV文件列号”所在行维护取值列,然后点击生成按钮,即可生成变量表达式,如下图所示。

        参数化文件中列与列之间用英文逗号分隔,在参数化取列的值时0代表第一列,1代表第二列,依此类推。

 

        在实际执行过程中还发现,当有多个线程循环读取的时候,每个线程只读取1行值,如5个线程循环2次,共执行10次,只会读取到前5行所在值,1个线程循环10次都在读取第一行所在值。

 

小结:

         csv_read函数特点:每个并发用户只读取1行,且永远使用同一行数据,无论并发用户循环多少次,执行多少个http请求。

        使用场景:某些业务场景是流程式,需要分成多个http请求,且多个http请求需要用到一个共同的参数,如:用户id、用户名。

2.4.csv文件参数化

        在线程组中添加“CSV数据文件设置”配置元件,在文件设置中“文件名”处维护参数化文件的路径,文件编码根据需求选择,我这里选择“UTF-8”,在“变量名称”处维护要从文件中取值的变量名,如果要取多列值,不同变量之间用英文逗号分隔,“分隔符”所在处输入英文逗号,在需要引用变量的地方用${变量名}进行引用即可。

        需要注意的是:遇到文件结束符再次循环和遇到文件结束符停止线程两个值是相反的。

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

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

相关文章

兼容SringBoot 3.X版本的 API工具(Springdoc)

前言 逆水行舟,不进则退!!! Springfox 目前最新的还是3.0的版本, 只支持SpringBoot 2.X的版本, SpringDoc 目前最新的版本支持 SpringBoot3.X JDK17 pom依赖 最简单的使用方式就是引入依赖, 然后在控制器上加上对应…

元宇宙的军事应用

目前,“元宇宙”在军事领域的首要用途,是作为模拟训练的“赋能器”。在全球军事领域,美军最早用虚拟仿真开展军事训练。数十年来,美军一直力图打造一个完全模拟现实场景、沉浸式、无缝整合的“虚拟战场系统”。作为新兴技术的集大…

HW面试应急响应之场景题

(1)dns 报警就一定是感染了吗?怎么处理? 不一定。 引起dns报警的情况有:恶意软件感染,域名劫持,DNS欺骗,DDoS攻击等。 处理方法: 1、分析报警,查看报警类型、源IP地址、目标域名等…

使用freebsd-update 升级FreeBSD

为了学习使用AppJail,升级FreeBSD,从14.1-BETA3升级到14.1-RELEASE 当前最新的发布版本是14.1-RELEASE,所以upgrade后面跟了-r 版本号。 使用命令freebsd-update upgrade -r 14.1-RELEASE: freebsd-update upgrade -r 14.1-R…

彻底吃透A*算法的最优性

下面的博客将主要介绍A*算法在扩展结点(这对于寻路时间很重要)和总代价(这对于保证最后解的最优性很重要)上的最优性,并将淡化对A *完备性的介绍。 A* 算法流程 A*算法的流程如下[1]: 并定义 f ( n ) f(n…

Pytorch中的广播机制

一、广播(broadcast)机制概述 在PyTorch中,广播机制(Broadcast)允许对不同形状的张量执行逐元素操作,而无需显式地复制数据。这一机制使得编写代码更加简洁和高效。广播机制遵循一定的规则来扩展较小的张量,使其与较大的张量具有相同的形状 …

DNS解析与Bond

一、DNS 1、DNS概念 DNS是域名系统的简称:域名和ip地址之间的映射关系互联网中IP地址是通信的唯一标识,逻辑地址访问网站,有域名,ip地址不好记,域名朗朗上口,好记。 域名解析的目的:实现访问…

LeetCode 算法:最大子数组和c++

原题链接🔗:最大子数组和 难度:中等⭐️⭐️ 题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 …

面试高频问题----3

一、非对称加密和对称加密具体算法和使用场景 对称加密算法:发端和收端共享同一个密钥,使用该密钥进行加密和解密。适用于数据量大的数据传输中; 非对称加密算法:有一个公钥,一个私钥;发端和收端不需要共…

05-JavaScript 中的 `tap` 和 `click` 事件

JavaScript 中的 tap 和 click 事件 笔记分享 在现代Web开发中,尤其是针对移动设备的开发,处理用户交互事件是一个重要的挑战。尽管 click 事件在桌面浏览器中广泛使用,但 tap 事件在移动设备上提供了更合适的用户体验。这篇文章将深入探讨 …

JVM之【字节码/Class文件/ClassFile 内容解析】

说在前面的话 Java语言:跨平台的语言(write once,run anywhere) 当Java源代码成功编译成字节码后,如果想在不同的平台上面运行,则无须再次编译这个优势不再那么吸引人了。Python、PHP、Perl、Ruby、Lisp等有强大的解释器。跨平台似乎已经快成为一门语言…

Vue 3 Teleport:掌控渲染的艺术

title: Vue 3 Teleport:掌控渲染的艺术 date: 2024/6/5 updated: 2024/6/5 description: 这篇文章介绍了Vue3框架中的一个创新特性——Teleport,它允许开发者将组件内容投送到文档对象模型(DOM)中的任意位置,即使这个位…

房地产3d全景数字化看房成为转发的好工具

在短视频盛行的时代,某地产企业为了吸引客流,联合我们深圳VR公司定制了楼盘小区3D全景展示视频,不同于市面上常见的楼盘视频或3D电影,楼盘小区3D全景展示视频让您在小区建成之前,就能提前感受未来的生活场景。 无需昂贵…

C++第三方库【httplib】断点续传

什么是断点续传 上图是我们平时在浏览器下载文件的场景,下载的本质是数据的传输。当出现网络异常,浏览器异常,或者文件源的服务器异常,下载都可能会终止。而当异常解除后,重新下载文件,我们希望从上一次下载…

【技巧】系统语音是英文 影刀如何设置中文-作者:【小可耐教你学影刀RPA】

写在前面 嘿哈! 有些跨境或香港的小伙伴,可能需要使用英文操作界面的影刀 该功能目前还没有现成的可视化按钮🔘 但其实这个效果可以实现~ 1、效果图 2、实现原理 %影刀安装目录%\ShadowBot-版本号\ShadowBot.Shell.dll.confi…

2024050401-重学 Java 设计模式《实战代理模式》

重学 Java 设计模式:实战代理模式「模拟mybatis-spring中定义DAO接口,使用代理类方式操作数据库原理实现场景」 一、前言 难以跨越的瓶颈期,把你拿捏滴死死的! 编程开发学习过程中遇到的瓶颈期,往往是由于看不到前进…

机器学习:更多关于元学习

目录 Meta Learning vs Self-supervised Learning 自监督学习——找初始化的参数MAML 自动学出合适的参数 MAML:不断的学初始化参数MAML的初始化参数来自BERT MAML:找出来的初始化参数能在训练任务上表现的很好BERT:自监督目标是不同的下游任…

odoo10 权限控制用户只允许看到自己的字段

假设一个小区管理员用户&#xff0c;只想看到自己小区的信息。 首先添加一个用户信息选项卡界面&#xff0c;如下图的 用户 > 隶属信息&#xff1a; 我们在自己创建的user模块中&#xff0c;views文件夹下添加base_user.xml <?xml version"1.0" encoding&q…

Leetcode:最接近的三数之和

题目链接&#xff1a;16. 最接近的三数之和 - 力扣&#xff08;LeetCode&#xff09; 普通版本&#xff08;排序 双指针&#xff09; 主旨&#xff1a;最近值即为差值的绝对值最小值 class Solution { public:int threeSumClosest(vector<int>& nums, int target…

DBSCAN 算法【python,机器学习,算法】

DBSCAN 即 Density of Based Spatial Clustering of Applications with Noise&#xff0c;带噪声的基于空间密度聚类算法。 算法步骤&#xff1a; 初始化&#xff1a; 首先&#xff0c;为每个数据点分配一个初始聚类标签&#xff0c;这里设为0&#xff0c;表示该点尚未被分配…