jmeter如何参数化?Jmeter参数化设置的5种方法
jmeter如何参数化?我们使用jmeter在进行测试的时候,测试数据是一项重要的准备工作,每次迭代的数据当不一样的时候,需要进行参数化,从参数化的文件中来读取测试数据。那么,你知道jmeter如何进行参数化吗?接下来小编就给大家总结了Jmeter参数化设置的5种方法,主要详细介绍的是用Csv Data配置元件来进行参数化,对于Jmeter参数化设置不太了解到的小伙伴一定要仔细看哦!!
用Jmeter测试时包含两种情况的参数,一种是在url中,一种是请求中需要发送的参数。
URL中的参数,如:http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/,其中“2010/06/01/jmeter参数”为url参数。
请求中的参数,此处只能举例get请求,如:http://blog.da-fang.com/?category=Web,其中“category”是参数名,“Web”是它的值。
对于post请求,用jmeter录制后,可以在请求的“同请求一起发送参数”和“同请求一起发送文件”中找到。
参数化Jmeter脚本时,使用参数的地方书写格式为$
对于URL“http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/”,在Jmeter的http请求中blog.da-fang.com填写在“服务器名称或IP”中;/index.php/$/填写在“路径”中。
对于请求中的参数http://blog.da-fang.com/?category=Web,在Jmeter的http请求中blog.da-fang.com填写在“服务器名称或IP”中;/填写在“路径”中;参数名称category填写在“同请求一起发送参数”的“名称”中,参数值$填写在对应的“值”中。
Jmeter参数化设置的5种方法:
1. 用Jmeter中的函数获取参数值,__Random,__threadNum,__CSVRead,__StringFromFile,具体调用方法如下:
${__Random(,,)},$,${__CSVRead(,)},${__StringFromFile(,,,)}。
参看Jmeter函数的使用,通过菜单“选项”->“函数助手对话框”,即可在“函数助手”弹出框上找到Jmeter的函数。
其中${__Random(,,)}方法的第一个参数为随机数的下限,第二个参数为随机数的上限,第三个参数为储存随机数的变量名;${__CSVRead(,)}方法中第一个参数是文件名,第二个参数是文件中的列(列数从0开始);${__StringFromFile(,,,)}方法中第一个参数是文件名,${__StringFromFile(,,,)}方法中没有指定读取文件中的哪一列的参数,所以${__StringFromFile(,,,)}只能读取包含一列的文件。
2.用户定义的变量
2.1 添加“配置元件”->“用户定义的变量”
2.2 “名称”中输入变量名称,此处以登录为例,定义两个变量username和password。“值”中可以直接输入值,也可以通过Jmeter的函数__CSVRead,__StringFromFile从csv或dat文件中读取,还可以通过前缀加随机数的方法设置参数。
当参数值是某个前缀加一个数字时,可以用前缀名加${__Random(,,)}或$的方法设置参数值。如进行登录测试之前,先准备了用户名为perf_0到perf_1000的用户,那么用户名就可以设为perf_{__Random(0,1000,)}。
当参数值没有规律的且量不太大时,可以通过${__CSVRead(,)},${__StringFromFile(,,,)}从文件中读取,如将用户名和密码保存在user.csv文件中,user.csv的内容如下:
oriana,123456
admin,admin
dandan,123456
因为user.csv文件中有两列数据,所以只能用${__CSVRead(,)}函数,username参数后的值设为${__CSVRead(user.csv,0)},password参数后的值设为${__CSVRead(user.csv,1)}。
3. 从csv文件中读取(用Csv Data配置元件来进行参数化)
当参数的值没有规律且量不太大时,可以用这种方法。
具体做法如下:
1、打开jmeter图形界面工具,打开之前的脚本。
2、右键【添加】-【配置元件】-【Csv Data Set Config】
3、这个配置元件可以允许从你输入的路径来读取文件,然后根据分隔符获取到数据。
4、如下图,输入的数据。
讲解:
a,名称和注释不需要过多解释,自己定义。
b,Filename:参数化文件的读取位置。这个路径可以是绝对路径也是可以相对路径。在分布式测试中,还是利用相对路径比较方便,因为有的机器可能安装路径不一样。
c,File Encoding:编码格式,选择utf-8
d,Variable Names:变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开。例如username,passwd。参数化文件中同样有对应的两列数据。)
e,Ignore first line:忽略第一行数据。(类似loadrunner中第一行数据是变量名称,如果你的配置文件中为了记忆第一行也是变量名,可以选择是忽略这行数据)
f,Delimiter:分隔符,默认逗号。
g,Allow quoted data:是非选项,是否允许变量中间有分隔符,这里最好先默认false,数据中间最好不要有分隔符。
h,Recycle on EOF和Stop thread on EOF按需设置。是否循环,到结尾是否停止测试。我这里设置了True和False
i,Sharing mode:先选择所有的线程都可以利用此参数化。
5、准备测试数据。这里只是简单的写了几个数据来演示效果。
6、在请求中引用该变量。
引用方法是 ${} ;其中{}内写入参数化中的变量。
注:在parameter中加入一些多余的参数没有问题,故在访问百度的请求后面随意加了一个参数。
7、修改循环次数。这里设置6次,是因为参数里面有5个数据,测试一下数据取完之后的效果。
8、点击运行,查看结果树。
可以看到共发送了6次请求,而且请求参数中已经获取了变量的数据。
9、打开第二个请求。可以看到第二个请求的参数里面变量值为data-b。
顺序读取的。
10、找到最后一个请求,点开查看。
请求参数中searchid是data-a,说明数据是从头开始取的,也就是数据是遍历后循环的。
参数化完成了。
4.从数据库中获取
当参数的值没有规律且量比较大时,可以选用这种方法。
具体做法如下:
4.1 下载MySQL JDBC “http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.12.zip/from/http://ftp.jaist.ac.jp/pub/mysql/”
4.2 解压下载的zip包后,将其中的mysql-connector-java-5.1.12-bin.jar放到Jmeter的lib目录下
4.3 添加“配置元件”->“JDBC Connection Configuration”,设置下列参数:
Database URL:jdbc:mysql://host:port/db(如jdbc:mysql://localhost:3306/testlink
JDBC Driver class:com.mysql.jdbc.Driver
username:连接数据库的用户名(如root)
password:连接数据库的密码
4.4 添加“Sampler”->“JDBC Request”,在SQL Query中输入查询语句,如下:
SELECT CONCAT (“[",
GROUP_CONCAT(
CONCAT("{username:'",login,"'"),
CONCAT("{password:'",password),"'}"),"]“) AS json FROM users
4.5 在4.4中的JDBC请求中添加“后置处理器”->“正则表达式提取器”,以提取3.4中的用户名和密码为例设置正则表达式提取器的参数:
引用名称:user
正则表达式:username:’(.+?)’\{password:’(.+?)’
模板:$1$$2$
使用时,user_g1即为用户名,user_g2即为对应用户名的密码;更多正则表达式提取方法参见Jmeter正则表达式提取器
5.用正则表达式从前面请求的响应数据中提取,具体操作见Jmeter正则表达式提取器
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】
相关文章:
jmeter如何参数化?Jmeter参数化设置的5种方法
jmeter如何参数化?我们使用jmeter在进行测试的时候,测试数据是一项重要的准备工作,每次迭代的数据当不一样的时候,需要进行参数化,从参数化的文件中来读取测试数据。那么,你知道jmeter如何进行参数化吗&…...
01AVue入门(持续学习中)
1.使用AVue开发简单的前端页面直接简单到起飞,他是Element PlusVueVite开发的,不需要向元素的前端代码一样一个组件要传很多参数,他可以使用Json文本来控制我们要传入的数据结构来决定显示什么 //我使用的比较新,我们也可以使用cdn直接使用script标签直接引入 2.开发中遇到的坑…...
js 深浅拷贝的区别和实现方法
一:什么浅拷贝: 浅拷贝创建一个新对象,然后将原始对象的所有属性值复制到新对象中。这意味着,如果原始对象的属性值是基本类型(例如数字、字符串),那么这些值会被直接复制到新对象中。但如果属…...
【jvm从入门到实战】(九) 垃圾回收(2)-垃圾回收器
垃圾回收器是垃圾回收算法的具体实现。 由于垃圾回收器分为年轻代和老年代,除了G1之外其他垃圾回收器必须成对组合进行使用 垃圾回收器的组合使用关系图如下。 常用的组合如下: Serial(新生代) Serial Old(老年代) Pa…...
C#基础——匿名函数和参数不固定的函数
匿名函数、参数不固定的函数 匿名函数:没有名字,又叫做lambda表达式,具有简洁,灵活,可读的特性。 具名函数:有名字的函数。 1、简洁性:使用更少的代码实现相同的功能 MyDelegate myDelegate…...
PCL 点云匹配 4 之 (非线性迭代点云匹配)lM-ICP
一、IM迭代法 PCL IterativeClosestPointNonLinear 非线性L-M迭代法-CSDN博客 Matlab 非线性迭代法(3)阻尼牛顿法 L-M-CSDN博客 MATLAB实现最小二乘法_matlab最小二乘法-CSDN博客...
MySQL_14.数据库高速缓冲区空间管理
数据库高速缓冲区空间管理 Oracle 用 LRU(Least Recently Used)算法来管理数据高速缓冲区。该算法将最近使用的 数据块按照使用时间的早晚排成队列,当缓冲区占满后,调入新的数据块时,必须清除已有的数据 块,…...
leetcode 974. 和可被 K 整除的子数组(优质解法)
代码: class Solution {public int subarraysDivByK(int[] nums, int k) {HashMap<Integer,Integer> hashMapnew HashMap();hashMap.put(0,1);int count0; //记录子数组的个数int last0; //前一个下标的前缀和int now0; //当前下标的前缀和for(int i0;…...
【技术】MySQL 日期时间操作
MySQL 日期时间操作 MySQL 系统时间MySQL 时间格式化MySQL 年月日时分秒周MySQL 日期计算时分秒时差日期差日期加减 MySQL 系统时间 now():系统时间,年月日时分秒current_date:系统时间,年月日current_time:系统时间&…...
测试理论知识三:测试用例、测试策略
1.测试用例 完全的测试是不可能的,对任何程序的测试必定是不完全的,那么,最显然的测试策略就是努力使测试尽可能完全。 进行测试前,推荐先使用黑盒测试的方法设计测试用例,然后使用白盒测试方法来补充的测试用例。 2…...
【clickhouse】在CentOS中离线安装clickhouse
https://packages.clickhouse.com/rpm/stable/ 通过如下命令检查是否安装过clickhouse [root172 ~]# rpm -qa | grep clickhouse 把rpm安装包放到opt/lzh目录 按照如下命令顺序安装 [root172 /]# rpm -ivh /opt/lzh/clickhouse-common-static-22.1.2.2-2.x86_64.rpm [root…...
微信商户号申请0.2费率
我们都知道,目前市场上的支付宝或者微信商户收款,无论是线上收款还是实体店收款,一般都采用0.6%的收款费率,1万元就是60元。 其实这不低的。 大多数线下实体店商家可能使用的聚合支付码可能是0.38%,1万元是38。 虽然不…...
基于单片机设计的电子指南针(LSM303DLH模块(三轴磁场 + 三轴加速度)
一、前言 本项目是基于单片机设计的电子指南针,主要利用STC89C52作为主控芯片和LSM303DLH模块作为指南针模块。通过LCD1602液晶显示屏来展示检测到的指南针信息。 在日常生活中,指南针是一种非常实用的工具,可以帮助我们确定方向࿰…...
深度学习 该用什么标准判断差异最小
决定差异最小的标准通常依赖于您的具体问题和任务。以下是一些常见的用于评估预测性能的标准和思路: 1. **均方根误差 (RMSE):** RMSE 是预测值和真实值之间差异的平方的平均值的平方根。它对较大的误差更加敏感。 from sklearn.metrics import mean_squared_error…...
汽车制造厂设备故障预测与健康管理PHM
在现代汽车制造工业中,设备的可靠性和稳定性对于保证生产线的高效运行至关重要。为了提高生产效率、降低维修成本以及确保产品质量,汽车制造厂逐渐采用设备故障预测与健康管理(PHM)系统,以实现对设备状态的实时监测和预…...
如何通过宝塔面板搭建一个MySQL数据库服务并实现无公网ip远程访问?
文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…...
C++ Qt开发:TabWidget实现多窗体功能
Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TabWidget标签组件的常用方法及灵活运用。 Q…...
【轻量化篇】YOLOv8改进实战 | 更换主干网络 Backbone 之 RepGhostnet,重参数化实现硬件高效的Ghost模块
YOLOv8专栏导航:点击此处跳转 前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操…...
【STM32工具篇】使用CLion开发STM32
本文主要记录使用CLion开发STM32,并调试相关功能 使用的CLion版本:2023.3.1 CLion嵌入式配置教程:STM32CubeMX项目 |CLion 文档 (jetbrains.com) OpenOCD官网下载:Download OpenOCD for Windows (gnutoolchains.com) GNU ARM工…...
elementui中的el-table,当使用fixed属性时,table主体会遮挡住滚动条的大半部分,导致很难选中。
情况: 解决: el-table加个类,这里取为class"table" 然后是样式部分: <style scoped lang"scss"> ::v-deep.table {// 滚动条高度调整::-webkit-scrollbar {height: 15px;}// pointer-events 的基本信…...
鸿蒙端H5容器化建设——JSB通信机制建设
1. 背景 2023年鸿蒙开发者大会上,华为宣布为了应对国外技术封锁的潜在风险,2024年的HarmonyOS NEXT版本中将不再兼容Android,并推出鸿蒙系统以及其自研的开发框架,形成开发生态闭环。同时,在更高维度上华为希望将鸿蒙…...
数据管理平台Splunk Enterprise本地部署结合内网穿透实现远程访问
文章目录 前言1. 搭建Splunk Enterprise2. windows 安装 cpolar3. 创建Splunk Enterprise公网访问地址4. 远程访问Splunk Enterprise服务5. 固定远程地址 前言 Splunk Enterprise是一个强大的机器数据管理平台,可帮助客户分析和搜索数据,以及可视化数据…...
MaBatis使用`ResultMap`标签手动映射详解使用
文章目录 MaBatis使用ResultMap标签手动映射详解使用1、MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系,二者不同时无法自动ORM,如下:2、在SQL中使用 as 为查询字段添加列别名,以匹配属性名:但是如果我…...
openstack-keystone服务
文章目录 keystone服务安装和配置先决条件安装并配置组件运行以下命令来安装包。编辑文件 /etc/keystone/keystone.conf 并完成如下动作:初始化身份认证服务的数据库:初始化Fernet keys:Bootstrap the Identity service: 配置 Apache HTTP 服…...
大数据HCIE成神之路之数据预处理(3)——数值离散化
数值离散化 1.1 无监督连续变量的离散化 – 聚类划分1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析 1.1.2 实验思路1.1.3 实验操作步骤1.1.4 结果验证 1.2 无监督连续变量的离散化 – 等宽划分1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实…...
stm32 寄存器、地址、位带操作
存储器区域功能划分 4GB 的地址空间中,ARM 已经粗线条的平均分成了 8 个块,每块 512MB,每个块也都规定了用途,具体分类见表格 6-1。每个块的大小都有 512MB,显然这是非常大的,芯片厂商在每个块的范围内设计…...
记录 | gdb使用backward-cpp来美化调试log
# 在当前工程目录下 git clone https://github.com/bombela/backward-cpp.git 编辑CMakeList.txt cmake_minimum_required(VERSION 3.15)project(exampleproj LANGUAGES CXX)add_subdirectory(backward-cpp)add_executable(main main.cpp)target_sources(main PUBLIC ${BACKW…...
EasyExcel模板导出(行和列自动合并)
1.需求背景: ①需要从第三方获取数据,第三方接口有两个参数,开始时间和结束时间 ②获取回来的数据并没有入库,所以不能通过数据库将数据归类统计,excel合并大概的流程是判断上一行或者左右相邻列是否相同,然后进行合并,所以不能是零散的数据且客户要求每一个自治区和每一个航站…...
EOCR-i3MZ/iFMZ施耐德漏电保护继电器产品简介
EOCR-i3MZ/iFMZ是施耐德EOCR的新一代电子式电动机保护器产品,具有过电流、欠电流、缺相、逆相、堵转、失速、三相不平衡、接地等保护功能。EOCR-i3MZ/iFMZ是通讯型产品,提供Modbus RTU通讯协议,RS485接口。 为方便设备维护人员排查电动机的故…...
golang开发--beego入门
Beego 是一个基于 Go 语言的开源框架,用于构建 Web 应用程序和 API。它采用了一些常见的设计模式,以提高开发效率、代码可维护性和可扩展性。 一,MVC设计模式 Beego 框架采用了经典的 MVC(Model-View-Controller)设计…...
php做电商网站的难点/百度推广关键词越多越好吗
熊猫帮帮主cnblogs 2018/1/25 问题描述:在Windows下将中文文件名的文件打成压缩包,在Linux下解压出现文件名乱码。 问题原因:Windows和Linux下采用不同中文编码格式,导致在Linux下解压时出现文件名乱码。 解决方案:在命…...
南宁做网站价格/google网页搜索
二叉树的镜像之copy树前言一、递归1、思想2、源码总结前言 二叉树的镜像之copy树,通常copy树时,我们需要新的root,copy树的基础同样是遍历,树的遍历就是递归。 所以我们要有树对递归的敏感性。 一、递归 1、思想 在递归的基础上&…...
黑龙江省垦区建设协会网站/武汉seo托管公司
西雅图IT圈:seattleit【今日作者】宇直宇宙第一直男近日有网友发现疑似刘强东的证件照被强行植入进了某印度电影的预告片里疑似造成了侵权这部电影播出了预告片片中大概40秒处有一幕镜头是:疑似正在进行案件分析,墙面上出现了许多照片&#x…...
做网站一定要买/搜狗搜索网页版
异常 原因 没有以管理员身份打开DOS窗口。 解决...
如何推广自己的店铺?/网站制作优化
一、JAVA NIO NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道…...
做网站需要的图片/长春网站建设定制
1、通过查找API文档:2、Map.Entry是一个接口,所以不能直接实例化。3、Map.entrySet( )返回的是一个collection集合,并且,这个collection中的元素是Map.Entry类型,如下图所示:4、Map是Java中的接口ÿ…...