最近写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基础命令---文本格式转换fmt

    fmt 将指定文件的内容,按照指定的格式重新排版,结果送到标准输出. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法     ...

  2. 常用linux命令行

    1.ls命令 ls -a 列出目录所有文件,包含以.开始的隐藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ls -t 以文件修改时间排序 ls -S 以文件大小排序 ls -h ...

  3. 76 道 Oracle Goldengate 面试问题

    基础 12c新特性 性能 Troubleshoot 其它 1. Oracle Goldengate 支持部署到哪些拓扑? GoldenGate supports the following topol ...

  4. hibernate文档头的不同版本

    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "h ...

  5. apache的rewrite机制配置

    步骤: 1:启用rewrite模块,在默认情况下,没有启用 修改httpd.conf文件 #启动rewrite模块 LoadModule rewrite_module modules/mod_rewr ...

  6. Percona Server 5.6 安装TokuDB

    系统:Red Hat Enterprise Linux Server release 6.3 (Santiago) 数据库:Percona-Server-5.6.29-rel76.2-Linux.x8 ...

  7. centos6二进制安装mysql5.5

    centos 6.5,安装mysql 5.5.60 所需安装包mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz.ncurses-devel-5.7-4.200902 ...

  8. ORA-12052: cannot fast refresh materialized view

    SQL> execute dbms_mview.refresh ('TX_FAIL_LOG_DAY_MV', 'f'); BEGIN DBMS_MVIEW.REFRESH ('TX_FAIL_L ...

  9. js获取对象的key

    var obj = {"name":"名字","age":"18"};var temp = "";f ...

  10. centOS 安装 Webmin

    http://www.webmin.com/rpm.html 修改配置文件在这里: /etc/webmin/miniserv.conf