jmeter五种参数化方式之CSV Data Set Config参数化

 

一、用户定义的变量

一般会设置全局不变的参数,如host、账号、密码等

jmeter五种参数化方式之CSV Data Set Config参数化

设置名称username,password  值王荔,123456

jmeter五种参数化方式之CSV Data Set Config参数化

线程设置2次和循环设置2次,2次采样器传参和结果一样

jmeter五种参数化方式之CSV Data Set Config参数化

jmeter五种参数化方式之CSV Data Set Config参数化

二、用户参数

添加用户参数

jmeter五种参数化方式之CSV Data Set Config参数化

设置3组参数

jmeter五种参数化方式之CSV Data Set Config参数化

参数化

jmeter五种参数化方式之CSV Data Set Config参数化

当线程设置线程数4个,会循环参数1 2 3 1;当循环设置4次,会循环参数1 4次;当线程设置2个,循环设置5次,会参数1和2分别循环5次

jmeter五种参数化方式之CSV Data Set Config参数化

三、随机变量

添加随机变量

jmeter五种参数化方式之CSV Data Set Config参数化

设置随机变量

变量名称:名称可以引用,如 ${xxx}

输出格式:列如此处输入x,那么得到结果是x1、x2之类的格式

最小值:输入生成随机数的最小数字

最大值:输入生成随机数的最大数字

jmeter五种参数化方式之CSV Data Set Config参数化

分别设置10线程或10次循环,随机生成10个变量

jmeter五种参数化方式之CSV Data Set Config参数化

四、计数器

添加计数器

jmeter五种参数化方式之CSV Data Set Config参数化

设置计数器

启动(start) 
给定计数器的起始值、初始值,第一次迭代时,会把该值赋给计数器 
注:英文版下是Start,Jmeter的中文语言将Start翻译成了“启动”,有些歧义

递增(Increment): 
每次迭代后,给计数器增加的值

最大值(Maximum) : 
计数器的最大值,如果超过最大值,重新设置为初始值(Start),默认的最大值为Long.MAX_VALUE,2^63-1

Number format : 
可选格式,比如000,格式化为001,002。默认格式为Long.toString(),但是默认格式下,似乎还是可以当作数字使用

引用名称(Reference Name) : 
用于控制在其它元素中引用该值,形式:$(reference_name}

与每用户独立的跟踪计数器(Track Counter Independently for each User): 
换言之,这个是全局的计数器,还是说每个用户拥有自己的计数器。如果不勾选,即全局的,比如用户#1 获取值为1,用户#2获取值为2,如果是独立的,即不勾选,每个用户有自己的值,比如用户#1 获取值为1,用户#2获取值还是为1

Reset counter on each Thread Group Iteration : 
可选,仅勾选与每用户独立的跟踪计数器时可用,如果勾选了,每次线程组迭代,都会重置计数器的值。当线程组是在一个循环控制器内时比较有用
 

未勾选与每用户独立的跟踪计数器

线程10时、循环10次时,递增迭代

jmeter五种参数化方式之CSV Data Set Config参数化

勾选与每用户独立的跟踪计数器

线程10时,迭代第一个变量;循环10次时,递增迭代

jmeter五种参数化方式之CSV Data Set Config参数化

 

五、csv data set config参数化

添加csv data set config

jmeter五种参数化方式之CSV Data Set Config参数化

设置参数文件

jmeter五种参数化方式之CSV Data Set Config参数化

 

设置csv data set config

jmeter五种参数化方式之CSV Data Set Config参数化

  1. Filename:文件名,指保存信息的文件目录,可以相对或者绝对路径(比如:D:\ceshi.Txt)
  2. File encoding:csv文件编码,可以不填
  3. Variable Names:变量名,多个变量用“,”分开。变量使用格式${OA_VendingMachineNum}和${Name}
  4. Delimiter:csv文件中的分隔符(用”\t”代替tab键)(一般情况下,分隔符为英文逗号)
  5. Allow quoted data:是否允许引用数据(尚不清楚)
  6. Recycle on EOF :到了文件尾处,是否循环读取参数,选项:true和false。因为CSV Data Set Config一次读入一行,分割后存入若干变量交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入
  7. Stop thread on EOF:到了文件尾处,是否停止线程,选项:true和false
  • 当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,通俗的讲,在前面控制了不停的循环读取,后面再来让stop或run没有任何意义
  • 当Recycle on EOF 选择flase时,Stop thread on EOF选择true,线程4个,参数3个,那么只会请求3次
  • 当Recycle on EOF 选择flase时,Stop thread on EOF选择flase,线程4个,参数3个,那么会请求4次,但第4次没有参数可取,不让循环,所以第4次请求错误

     8. Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。经试验得出来的结果是(不考虑线程组迭代):

  • 如果测试计划中有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn,CSV Data Set Config放在线程组A的下级组织树,不管怎么设置Sharing mode,都只针对线程组A且取之情况一样:线程A1取第一行,线程A2取第二行。CSV Data Set Config放在测试计划下级组织树(与线程组并列),情况如下 :

   All threads:测试计划中所有线程,线程组A、线程组B共用一个CSV文件,所取数据与线程实际执行顺序有关(先执行先取)。补充一点:线程组之间是并行执行,各线程实际执行时间根据Ramp-UP Period而来,如下图,若线程A、线程B均设置Ramp-Up Period:2,取之情况是:线程A1取第1行,线程B1取第2行,线程A2取第3行,线程B2取第4行。

        Current thread group:取之情况是:线程A1取第1行,线程A2取第2行,线程B1取第1行,线程B2取第2行。(线程组互不影响)

   Current thread:当前线程。A1取第一行,A2取第一行;B1取第一行,B2取第一行(均取第一行)

CSV Data Set Config默认设置,线程10个、循环10次,结果一样

jmeter五种参数化方式之CSV Data Set Config参数化