接章节(二)JMeter学习-参数化 继续操作;
第一章. 参数化时参数文件读取
新建CSV Data SetConfig
第二章.配置csv data set config
1、Filename:文件名,指保存信息的文件目录,可以相对或者绝对路径(当csv文件在bin目录下时,只需给出文件名即可);
2、File Encoding:文件编码,默认为ANSI;不填写也可以;
3、Variable Names:参数名称(有几个参数,在这里面就写几个参数名称,每个名称中间用分隔符分割,分隔符使用下面的“Delimitet”中定义的;
4、Delimitet:定义分隔符,用于分隔文件中的参数,及上述Variable Names中定义的参数名称(如果此文本文件为CSV格式的,默认用英文逗号分隔);
5、Allow Quoated data: True --设置文件中的参数值都必须用"引号"引起来,False则不需要;
6、Recycle on EOF:到了文档尾处,是否从头开始循环读入,选项:true 和 false;
注:程序从CSV Data Set Config文件中,每次读取一行,每次读取的参数仅供一个线程使用(类似Loadrunner里面的参数唯一值功能),如果线程数超过文本的记录行数,那么可以选择True (从头再次读取);
7、Stop Thread on EOF:到了文档尾处,是否停止线程,选项:true 和 false;
注:这里我用通俗的语言大概讲一下Recycle on EOF与Stop thread on EOF结果的关联:
Ø当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(所有线程):测试计划中所有线程,假如说有线程1到线程n (n>1),线程1取了一次值后,线程2取值时,取到的是csv文件中的下一行,即与线程1取的不是同一行。
Ø Current thread group(当前线程组):假设有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn。取值情况是:线程A1取到了第1行,线程A2取第2行,现在B1取第1行,线程B2取第2行。
Ø Current thread(当前线程):假设测试计划内有线程1到线程n (n>1),则线程1取了第1行,线程2也取第1行。
第三章.传参内容编辑
把我们需要“参数化”的数据,用记事本编写参数化的数据:
1、保存为.dat格式的文件,编码问题在使用CSV Data Set Config参数化时要求的比较严格,记事本另存为->修改编码UTF-8;
2、若是对应的一条数据,中间用英文的逗号隔开;
3、每条数据都需要分行显示;
4、把文件保存在某个路径下,我们这里保存在D:\JMeter\xj.dat;
注:文件也可以保存为CSV格式;
第四章.在http请求填写参数化内容
参数化,在需要参数化的值前加上&{参数化名称},参数化的名称对应csv data set config中填写Variable Names的值;
第五章.运行JMeter,查看结果
1、设置4条线程,每条线程循环1次,则会有四条结果;
2、可以在【请求】Tab查看传不同的参数;