zoukankan      html  css  js  c++  java
  • jmeter(14)参数化之csv文件设置

    一. CSV数据文件设置

    CSV数据集配置用于从文件中读取行,并将它们拆分为变量。它比CSVRead ()和_ StringFromFile ()函数更容易使用。
    它非常适合处理大量变量,对于使用“随机”和唯一值进行测试也很有用。

    默认情况下,文件只打开一次,每个线程将使用文件中的不同行。但是,行传递给线程的顺序取决于它们执行的顺序。

    线程组->add Config Element (配置原件) --CSV data set config (CSV数据文件设置)

    注意下作用域,放在测试计划下面代表与线程组是同等位置,将作用于所有的线程组。

     

    官方推荐使用这种:因为不会消耗很多系统资源,很多数据csv文件,保存在本地,即存在磁盘中。

    最后会拿到内存中,供jmeter程序使用,因为计算机当中任何程序的交互都是cpu和内存进行交互,不会是cpu和磁盘进行交互,

    但是数据又是存在磁盘中,所以就会有个过程,cpu和内存交互的过程中发现,如果内存中有些数据没有,那么内存将会去从磁盘中加载数据取到放在内存中,

    然后cpu继续和内存进行交互,cpu是不会直接和磁盘进行交互的。。如果从磁盘取的话,就会占用很多系统资源,内存资源,所以这个时候csv文件设置避免消耗太多内存资源这种情况。


    CSV文件参数解析

    1、文件名:指保存信息的文件目录,选择文件的路径(支持相对路径(也可以,就放在jmeter/bin下面,文件路径写死了就是指的bin下面)文件名也支持绝对路径(推荐使用)文件名。否则会在jmeter日志文件(jmeter.log目录位置D:\Program Files\apache-jmeter-2.13\bin)中提示:系统找不到指定文件,运行脚本后,登录失败。
    对于分布式测试,CSV文件必须存储在分布式服务器主机系统上与JMeter服务器启动的正确相对目录中。
    分布式测试,csv文件默认放在Linux-jmeter的bin目录下。

    2、文件编码:保持默认,可不选。默认为ANSI ( ASCII码的拓展)

    3、变量名称:后续我们引用csv文件的时候,所使用的名称。给CSV文件中各列起个名字(有多列时,用英文逗号隔开列名)

    如下截图:3列起3个变量名字

    4、忽略首行:如果csv文件中设置了参数化数据的名称,而不是要使用的数据,则可以选择忽略首行。

    第一行数据有用,就不忽略

    第一行数据没用,就忽略

    是否忽略首行:false(否,不忽略)    true(是,忽略)

    5、分隔符:默认因为逗号, 即列与列之间的分隔符 ;

    csv文件中各列与各列之间的分隔符,比如逗号,   
     .csv文件的分隔符保持一致。如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t

    6、是否允许带引号:默认false;如果有引号 是否会带引号 默认false 

    单引号不会忽略,只会忽略双引号,比如“name”  name 
    自己调试一下,即只对双引号生效。

    但是如果请求体是body-json格式,这个必须设置为true
    {
      "name":"${name}",
      "pwd":"${pwd}"

    }

    7、遇到文件结束符是否再次循环:

    默认true

    设置为True—继续从文件第一行开始读取,

    设置为False—不再循环,会有EOF,空值。

    举例:如果文件有10个数据,到最后一行后,下一行没有数据了,

    选择true的话,就会从01再次开始循环;

    选择false的话,就会停止循环,但是线程数=11的话,数据只有10个,那么第11个数据取值为<EOF>

    8、遇到文件结束符/文件尾是否停止线程: 即到了文件尾是否停止线程?

    默认false

    false是不停止线程。

    true是停止线程。

    注:当Recycle on EOF【遇到文件结束符再次循环】设置为True时,此项设置【遇到文件结束符/文件尾是否停止线程】无效。 第11次不会运行

    为什么无效?
    因为当上面的Recycle on EOF设置为true,下面8也设置的true ,即代表7一直有值没有结束,会继续运行,所以值够的情况下,

    Stop thread on EOF? :true还是false都无所谓。 

    前提条件:第7项是fasle

    (1)
    【遇到文件结束符再次循环】即第7项选择false的话,就会停止循环,就数据10就结束了,不会再循环取数据了。
    ----遇到文件结束符停止线程:默认false,本次选择true是停止。
    比如线程数=20,但是数据只有10个,那么数据取完运行完10个线程数,第11个不再运行,即停止线程。

    (2)
    【遇到文件结束符再次循环】即第7项选择false的话,就会停止循环,就数据10就结束了,不会再循环取数据了。
    ----遇到文件结束符停止线程:默认false,本次选择false是不停止线程。
    比如线程数=20,但是数据只有10个,那么数据取完运行完10个线程数,第11个仍运行,后面取值全部取的是<EOF>


    9、线程共享模式:默认[所有线程] ,还有[当前线程组] [当前线程] 

    参数化的取值取决于线程共享模式,默认所有线程,是个难点!!

    小知识点:
    如果文件是用的excel的话,那么保存文件另存为---文件类型选择.csv类型。
    不要直接修改文件名

  • 相关阅读:
    消息中间件与kafka(二)
    维度建模基本概念(二)
    阿里开源canal
    ETL-kettle报错--org.gjt.mm.mysql.Driver
    消息中间件与rabbitmq(一)
    python装饰器--这个很pythonic
    Swift开发小技巧--识别选中照片中的二维码
    Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)
    Swift开发小技巧--自定义转场动画
    Swift基础--通知,代理和block的使用抉择以及Swift中的代理
  • 原文地址:https://www.cnblogs.com/yiyaxuan/p/12369009.html
Copyright © 2011-2022 走看看