首页 > 其他分享 >JMeter 配置元件之按条件读取CSV Data Set Config

JMeter 配置元件之按条件读取CSV Data Set Config

时间:2024-02-03 23:11:48浏览次数:21  
标签:... Set 763DCD OB 022DCP JMeter Config 20231221 20231222

实践环境

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?: FalseStop thread on EOF?:True 配置项无法起到精确控制(有作用,但读取到文件末尾时不会立即停止,还是有线程会继续从头读取,至于啥时候才会全部停止,我也不清楚,最后线程会因为这个配置停止就是)

解决方案:在对应的IF逻辑控制下,添加线程共享计数器,并在数据文件之后,添加脚本采样器,脚本里判断计数器当前值是否大于文件最大内容行数,如果大于则停止线程

if (Long.parseLong(vars.get('fileLineReadCnt1')) > Long.parseLong(vars.get('maxFileLineNum2'))) {
    ctx.getThread().stop()
} 

标签:...,Set,763DCD,OB,022DCP,JMeter,Config,20231221,20231222
From: https://www.cnblogs.com/shouke/p/18005375

相关文章

  • Nginx 可视化配置神器NginxConfig
    Nginx是前后端开发工程师必须掌握的神器。该神器有很多使用场景:比如反向代理、负载均衡、动静分离、跨域等等。把Nginx下载下来打开conf文件夹的nginx.conf文件,Nginx服务器的基础配置和默认的配置都存放于此。配置是让程序员非常头疼的事,比如Java后端框架SSM,大量配......
  • 【阅读笔记】《A New Hardware-Efficient Algorithm and Reconfigurable Architecture
    一、对比度增强算法AGCWD硬件化实现2013年发表在TIP上的对比度增强算法AGCWD(Efficientcontrastenhancementusingadaptivegammacorrectionwithweightingdistribution)2014年发表在IEEETransactionsonImageProcessing的《ANewHardware-EfficientAlgorithmandReco......
  • vue2.x的项目运行问题(export,set)
    Windows系统修改package.json文件:"scripts":{"serve":"setNODE_OPTIONS=--openssl-legacy-provider&&vue-cli-serviceserve","build":"setNODE_OPTIONS=--openssl-legacy-provider&&vue-cli-s......
  • -bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
    问题ssh刚登录连接时警告:Failedtosetlocale,defaultingtoC或2.linux运行命令时先报错:Failedtosetlocale,defaultingtoC系统已经设置了默认地区_语言.字符集为en_US.UTF-8,但是在系统中没有定义对应的locale文件,只需要手动生成这个locale文件即可解决:查......
  • Angular 17+ 高级教程 – Angular Configuration (angular.json)
    前言记入一些基本的配置。 SetupIPAddress、SSL、Self-signedCertificate如果你对IPAddress、SSL、Self-signedCertification不熟悉,请看这篇先 VsCode,VisualStudio2022,AngularandLiveServerRunningThroughHttpsandIPAddress在angular.json添加设......
  • Jmeter JDBC连接配置
    JDBC连接配置(JDBCConnectionConfiguration),用于创建数据库连接,后续可对数据库进行增删查等操作。和组件【JDBC请求(JDBCRequest)】搭配使用组件路径:线程组->右键添加->配置元件->JDBCConnectionConfiguration 1、前提:Jmeter连接数据库需要有JDBC驱动包,可去网上下载jar......
  • Java 中的HashSet 和 TreeSet
    HashSetHashSet集合:无序不可重复方法HashSet集合的元素实际上是放到HashMap集合的Key中importjava.util.HashSet;importjava.util.Set;/**HashSet集合:无序不可重复**/publicclassHashSetTest{publicstaticvoidmain(String[]args){//演示一......
  • 【2024】jmeter分布式压测记录
    一、分布式压测配置分布式压测分为一台master机器和多台slave机器,master机器主要用于控制多台slave机器运行并汇总运行结果。当然,压力机资源紧张时,master机器只做控制机有点浪费,也可以通过配置让master机器也作为施压机,既做控制机又做施压机。1.配置准备工作master配置:jmet......
  • Shell中set -e和if语句的组合使用
    shell脚本开头加上set-e命令后,在运行过程中如果出现返回值为非零,整个脚本就可以立刻退出。假如脚本中有if判断,很可能if条件的返回值是不为0的。一开始我是把hadoopfs-test-d$hdfs_folder单独写一行的,由于folder不存在,所以脚本直接退出。所以遇到这种情况,需要把有可能是结......
  • Redis - ERR wrong number of arguments for 'hset' command
    这个错误提示通常是因为执行HSET命令时参数数量不正确导致,HSET只能设置一组key/value,设置多组则使用HMSET。HSET命令需要指定三个参数:Hash键、Hash字段和字段值。如果参数数量不正确,Redis服务器将返回"ERRwrongnumberofargumentsfor‘hset’command"错误提示。常见的可......