JMeter 配置元件之按条件读取CSV Data Set Config
实践环境
win10
JMeter 5.4.1
需求描述
需求是这样的,需要压测某个接口(取消分配接口),请求这个接口之前,需要先登录系统(物流WMS系统),并在登录后,选择并进入需要操作的仓库,然后请求接口,接口报文如下:
{
"orderNos": ["OB-20231221-0000025","OB-20231221-0000026"],
"warehouseCode": "763DCD"
}
要求warehouseCode
和登录用户所属仓库保持一致,orderNos
必须归属于warehouseCode
,简单理解就是登录用户只能操作所选仓库的订单。
此外,每个订单参数只能用一次
脚本设计与实现
整体实现
具体设计如下:
1、用户自定义变量配置
2、将登录用户数据(登录账号,登录密码,所属仓库)存放在一个文本文件,如下:
load_testing_user_info.txt
userName,password,warehouseCode
opt022DCP1,iOKqmObkHLq+d5whJzcBr/.../kmUN/ND393iQkE=,022DCP
opt763DCD573,iOKqmObkHLq+d5whJzcBr/.../kmUN/ND393iQkE=,763DCD
opt022DCP782,iOKqmObkHLq+d5whJzcBr/.../kmUN/ND393iQkE=,022DCP
opt022DCP32,iOKqmObkHLq+d5whJzcBr/.../kmUN/ND393iQkE=,022DCP
opt763DCD753,iOKqmObkHLq+d5whJzcBr/.../kmUN/ND393iQkE=,763DCD
opt763DCD150,iOKqmObkHLq+d5whJzcBr/.../kmUN/ND393iQkE=,763DCD
...
3、将仓库订单数据分别按仓库分组存放在不同的文件
763DCD-orders.txt
orderWarehouse@orders
763DCD@"OB-20231221-0000025","OB-20231221-0000026"
763DCD@"OB-20231221-0000027","OB-20231221-0000028"
763DCD@"OB-20231221-0000029","OB-20231221-0000030"
763DCD@"OB-20231221-0000031","OB-20231221-0000032"
022DCP-orders.txt
orderWarehouse@orders
022DCP@"OB-20231221-0000029","OB-20231221-0000030","OB-20231221-0000031","OB-20231221-0000032","OB-20231221-0000033"
022DCP@"OB-20231222-0048049","OB-20231222-0048050","OB-20231222-0048051","OB-20231222-0048052","OB-20231222-0048053"
022DCP@"OB-20231222-0053060","OB-20231222-0053061","OB-20231222-0053062","OB-20231222-0053063","OB-20231222-0053064"
022DCP@"OB-20231222-0058083","OB-20231222-0058084","OB-20231222-0058085","OB-20231222-0058087","OB-20231222-0058086"
4、将仓库订单数据文件添加到不同的IF逻辑控制器下,增加IF判断条件--判断登录用户所属仓库和是否和订单数据文件所属仓库一致,如果一致则可读取对应数据文件
5、要求订单数据不可重复使用,步骤3操作,会导致CSV Data Set Config
配置元件的Recycle on EOF?: False
,Stop thread on EOF?:True
配置项无法起到精确控制(有作用,但读取到文件末尾时不会立即停止,还是有线程会继续从头读取,至于啥时候才会全部停止,我也不清楚,最后线程会因为这个配置停止就是)
解决方案:在对应的IF逻辑控制下,添加线程共享计数器,并在数据文件之后,添加脚本采样器,脚本里判断计数器当前值是否大于文件最大内容行数,如果大于则停止线程
if (Long.parseLong(vars.get('fileLineReadCnt1')) > Long.parseLong(vars.get('maxFileLineNum2'))) {
ctx.getThread().stop()
}
JMeter 配置元件之按条件读取CSV Data Set Config的更多相关文章
- JMeter脚本参数化和断言设置( CSV Data Set Config )
用Badboy录制了Jmeter的脚本,用Jmeter打开后形成了原始的脚本.但是在实际应用中,为了增强脚本的多样性,就要使脚本参数化.这里我以登录为例,参数化用户账号与用户密码. 图1 :原始脚本 ...
- JMeter学习笔记(十一) 关于 CSV Data Set Config 的 Sharing mode 对取值的影响
关于 CSV Data Set Config 的一些介绍之前已经梳理过了,可以参考: https://www.cnblogs.com/xiaoyu2018/p/10184127.html . 今天主要 ...
- Jmeter之CSV Data Set Config
在很多情况下,需要针对测试数据做参数化操作,Jmeter提供了很好用的CSV Data Set Config插件. 一.界面显示 二.界面说明 1.名称:标识,建议设置为该组件是提供什么功能 2.注释 ...
- JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置
众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. ...
- Jmeter配置元件——CSV DataSet Config参数化
在聊CSV DataSet Config配置元件前,先来讨论下为何要参数化? 比如在做性能测试过程中, 一般我们需要模拟多个用户进行操作, 为了满足实际场景, 模拟真实的用户行为, 我们需要做到模拟的 ...
- JMeter—配置元件(七)
参考<全栈性能测试修炼宝典JMeter实战>第六章 JMeter 元件详解中第二节配置元件JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. ...
- JMeter--详解JMeter配置元件
JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理 ...
- JMeter学习笔记--详解JMeter配置元件
JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理 ...
- JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录
下面以购物App常用的收藏功能为例,讲述如何在 JMeter 中使用 cookie 进行登录态操作.具体的操作步骤如下所示: 第一步.录制查看收藏列表的 HTTP请求: 录制查看收藏列表的HTTP请求 ...
- Jmeter(八) - 从入门到精通 - JMeter配置元件(详解教程)
1.简介 JMeter配置元件可以用来初始化默认值和变量,读取文件数据,设置公共请求参数,赋予变量值等,以便后续采样器使用.将在其作用域的初始化阶段处理.配置元件(Config Element)提供对 ...
随机推荐
- Dubbo SPI扩展机制源码详解(基于2.7.10)
Dubbo SPI 一. 概述 本文主要分享 Dubbo 的拓展机制 SPI. 想要理解 Dubbo ,理解 Dubbo SPI 是非常必须的.在 Dubbo 中,提供了大量的拓展点,基于 Dubbo ...
- 一文搞懂 Spring Bean 的生命周期
一. 前言 在学习Spring框架的IOC.AOP两大功能之前,首先需要了解这两个技术的基础--Bean.在Spring框架中,Bean无处不在,IOC容器管理的对象就是各种各样的Bean.理解Bea ...
- 原生Django出现同源策略跨域的解决方式
解决方式: 在返回数据的时候,添加响应头信息: 例如:
- 使用kubadm部署一套k8s学习平台环境
使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...
- NOIP模拟96
T1 树上排列 解题思路 是一个一眼切的题目... 看到题目第一眼就是 Deepinc 学长讲的可重集,无序 Hash . 直接套上一颗线段树再加上树剖, \(nlog^2n\) 直接过,好像也可以树 ...
- OpenSearch 与 Elasticsearch:哪个开源搜索引擎适合您?
当谈论到搜索引擎产品时,Elasticsearch 和 OpenSearch 是两个备受关注的选择.它们都以其出色的功能和灵活性而闻名,但在一些方面存在一些差异.在本文中,我们将从功能和延展性.工具与 ...
- 解读surging 的内存过高的原因
前言 对于.NET开发人员来讲,一个程序占用内存过高,是极其糟糕,是一款不合格的程序软件,.NET开发人员也不会去使用服务器垃圾收集器(ServerGarbageCollection),而是选用工作站 ...
- 只听过 Python 做爬虫?不瞒你说 Java 也很强
网络爬虫技术,早在万维网诞生的时候,就已经出现了,今天我们就一起来揭开它神秘的面纱! 一.摘要 说起网络爬虫,相信大家都不陌生,又俗称网络机器人,指的是程序按照一定的规则,从互联网上抓取网页,然后从中 ...
- Asp.net Core Flurl.Http 结合IHttpClientFactory管理HttpClient生命周期
Asp.net Core, 在我用过的多种Http REST 客户端: RestSharp WebApiClient Refit Flurl 中,Flurl可以说是最符合我口味的,用起来那可真的顺滑无 ...
- 12-Python数据库访问
在CentOS7上安装Mariadb https://blog.csdn.net/NetRookieX/article/details/104734181 常用的增删改查 show databases ...