最近写case,需要当前播放节目的数据作为输入数据,所以每个时刻所用的数据只能是当前时刻附件的数据,尝试用CSV Data Set Config动态加载不同的文件,没有成功,好像CSV Data Set Config里面的 文件名是在case运行之前就加载了,后期没法改(反正我自己没找到方法)。后来发现__CSVRead()函数可以在运行时读取,但是网上有人说csv文件不能太大。从我目前的需求来说,只需要一分钟切换一个文件,这样每一个文件里面的数据也就只需要包含几分钟时间段内的数据,这样文件也不会太大。

具体实现:

1. 在用__CSVRead()函数读取数据之前,先生成要读取的文件名(包括完整路径和扩展名),然后添加一个BeanShell Sampler,在里面用下面的代码每一列数据保存到变量里面,读取代码如下:

line1: vars.put("GlfProgramId",${__CSVRead(${__property(scheduleOnNowFile)},0)});
  Line2: vars.put("ServiceId",${__CSVRead(${__property(scheduleOnNowFile)},1)}${__CSVRead(${__property(scheduleOnNowFile)},next)});

其中,Line1的意思是把scheduleOnNowFile这个csv文件的第一列的当前行保存到GlfProgramId这个变量,0是指读取第一列,后面个列依次是1,2,3...。

Line2的意思跟第一行类似,只不过后面紧跟着的${__CSVRead(${__property(scheduleOnNowFile)},next)}是说后面的读取要移到下一行了,其中next就是指的下一行。当读到csv文件最后一行,会自动回到第一行。

PS:1. 用__CSVRead()函数读取文件数据时,好像不能忽略掉第一行(很多时候CSV文件都有header,用CSV Data Set Config可以忽略header这一行).

2. 如果一个threadgroup只读一行,那就只能在最后一次读取的时候加上${__CSVRead(${__property(scheduleOnNowFile)},next)}。

3. __CSVRead()函数读取是按顺序读取的,多线程运行也是按顺序的,第一个线程读第一行,第二个就读第二行,依次读取。

4. __CSVRead()函数读取列是完全按照半角逗号来区分不同的列的,不管每个列有没有双引号引起来,这个跟CSV Data Set Config是不一样的,CSV Data Set Config可以忽略掉双引号里面的逗号。所以如果字段里面有引号,需要在生成csv文件时,把半角逗号替换成全角逗号,等到读取出来要用的时候再替换回半角逗号。

JMeter中关于动态切换不同CSV文件解决方案的更多相关文章

  1. Jmeter :多个jmeter如何参数化获取不同的CSV文件

    如何为不同的jmeter engine建立不同的csv文件: 1.如果需要多个jmeter engine 去读取不同的csv文件,可以使用一个变量去区分 ${__P(InstanceID)},  in ...

  2. 通过源码了解ASP.NET MVC 几种Filter的执行过程 在Winform中菜单动态添加“最近使用文件”

    通过源码了解ASP.NET MVC 几种Filter的执行过程   一.前言 之前也阅读过MVC的源码,并了解过各个模块的运行原理和执行过程,但都没有形成文章(所以也忘得特别快),总感觉分析源码是大神 ...

  3. 直接把数据库中的数据保存在CSV文件中

    今天突然去聊就来写一个小小的demo喽,嘿嘿 public partial class Form1 : Form { public Form1() { InitializeComponent(); } ...

  4. 在Winform中菜单动态添加“最近使用文件”

    最近在做文件处理系统中,要把最近打开文件显示出来,方便用户使用.网上资料有说,去遍历“C:\Documents and Settings\Administrator\Recent”下的最近文档本.文主 ...

  5. 为TextView设置两种状态,程序中可以动态切换

    经常会需要用文字的两种状态来表示当前系统的某两种状态.比如:         这里的第一个TextView和后两个TextView就表示了两种状态.我们可以在程序的动态的切换状态(而不是直接修改颜色) ...

  6. springboot 1.5.x中的动态切换日志级别

    logback是一套日志框架,由log4j的优化版,由同一个作者开发,在速度和性能上都超过其他日志框架,再结合slf4j,已成为当前最流行的日志框架. 一.springboot中使用logback s ...

  7. vue中实现动态切换不同的值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 使用Jmeter性能测试,读取csv文件时的乱码问题

    读取csv参数乱码问题 发送请求时参数通过CSV文件读取,发送请求后显示错误,把获取的参数通过在线urlencode转码器转码后发现是乱码.打开csv设值,编码格式选择的是UTF-8,打开参数文件后发 ...

  9. 从数据库中导出.csv文件

    需求: 本次将数据库中的数据导出成.csv文件(office可以打开), //数据的生成,根据你所选中的数据进行生成 //params:$activity_id -> 活动的id //param ...

随机推荐

  1. linux下php中文UTF-8转换Unicode方法和注意事项

    先说下遇到问题:1.php没有内置unicode_ecode函数可以直接使用 2.网上很多资料都是用$str = iconv($encoding, 'UCS-2', $str); window下转换出 ...

  2. Linux下MySQL远程链接配置

    配置步骤: 1).首先进入数据库,使用系统数据库mysql mysql -u root -p mysql 2).接着对系统数据库的root账户设置远程访问的密码,与本地的root访问密码并不冲突 gr ...

  3. C++中虚函数的作用

    一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始) 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数.虚函数的作用,用专业术语来解释就是实现多态性(Po ...

  4. P5241 序列(滚动数组+前缀和优化dp)

    P5241 序列 挺神仙的一题 看看除了dp好像没什么其他办法了 想着怎么构个具体的图出来,然鹅不太现实. 于是我们想办法用几个参数来表示dp数组 加了几条边肯定要的吧,于是加个参数$i$表示已加了$ ...

  5. mycat下mysql jdbc connector使用高版本报PacketTooBigException异常

    如下所示: 5.1.30切换为mysql-connector 5.1.46/40,报错,可参考https://blog.csdn.net/n447194252/article/details/7530 ...

  6. 为什么不应该使用ZooKeeper做服务发现

    [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验 ...

  7. 查看Linux服务器是否是虚拟机

    dmidecode -s system-product-name 物理机: [root@swnode1]# dmidecode -s system-product-name I840-GS 虚拟机: ...

  8. replace 将逗号替换~

    var reg = new RegExp(",","g"); //"g"表示全局替换var aa="qq,ww";aa= ...

  9. poj 3744 Scout (Another) YYF I - 概率与期望 - 动态规划 - 矩阵快速幂

      (Another) YYF is a couragous scout. Now he is on a dangerous mission which is to penetrate into th ...

  10. 指针delete之后赋值为null

    1.现象 经常看到有些代码在delete之后赋值为null 2.原因 C++标准规定:delete空指针是合法的,没有副作用. 所以我们在Delete指针后赋值为NULL或0是个好习惯.对一个非空指针 ...