• jmeter参数化3、CSV Data Set Config


    在使用JMeter的时候,往往需要参数化一些数据,常用到的就是CSV Data Set Config,一般使用.csv或者.dat或者.txt结尾的文件。

    3.1字段解释

    Filename:

    填写测试数据的文件名。可以写绝对路径,注意复制文件路径后,需要把反斜杠“\”改为斜杠“/”。建议采用相对路径,避免脚本迁移时需要修改。和测试脚本在同一个目录中时,仅需要测试数据文件名称。

    File encoding:

    参数文件的编码格式。推荐选择 UTF-8,也可能为gbk、gb2312。

    Variable Names:

    对应参数文件每列的变量名。也是后续引用的标识符,建议采用有意义的英文标示,以英文逗号分隔,参考格式:aaa,bbb,ccc。

    Ignore first line:

    是否忽略首行,首行为字段名称时,选择True。

    Delimiter:

    参数文件分隔符。与参数文件中的分隔符保持一致即可。若数据文件中使用tab分隔,则此处填写“\t”。若仅第一行有分隔符,则后面行的第二个参数,默认使用第一行的第二个参数。不建议使用该方法,尽量保证每行的每一个参数都有值。

    Allow quoted data:

    是否允许引用数据。默认设置为 false。设置为true时,可以传递带英文双引号内的数据,例如”a”,传递的参数为去掉双引号之后的a。设置为true时,可以传递带英文单引号的数据,例如’a’,传递的参数为带单引号的’a’。设置为false时,带单双引号均会报错。

    Recycle on EOF?:

    是否循环读取参数文件内容。默认设置为 true。设置为 true 时,当已经读取完参数文件内的测试用例数据,还需要继续获取用例数据时,此时会循环读取参数文件数据;设置为 false 时,若已至文件末尾,则不再继续读取测试数据。通常在 线程组的线程数 * 线程组的循环次数 > 参数文件行数时,才需要将此项设置为 true。

    Sop thread on EOF?:

    当读取到参数文件末尾时,是否停止读取线程。默认为 false。当 Recycle on EOF?  设置为 true 时,此项不起任何作用。当且仅当 Recycle on EOF? 为 false 时,此项配置才生效。

    若为 true,则在读取到参数文件行末尾时,终止参数文件读取线程。例如:线程组的线程数 * 线程组的循环次数 = 10,参数文件行数 = 7,那么将在第 8 次开始停止线程。

    若为 false,此时线程会继续读取,但是会请求错误,因此时读取的数据为 EOF。以上同例,自第 8 次开始,线程的请求数据为 EOF。

    是否循环

    读取结束是否停止

    结果

    循环读取

    读取到结束后,其余请求EOF

    循环读取

    仅读取到结束

    Sharing mode:

    共享模式,即参数文件变量作用域。前提是该配置原件位于测试计划下方,设置才会生效。该配置原件在线程组下方时,三个选项没有区别,均是依次使用每一行参数。

    All threads默认:当前测试计划中的所有线程组中的所有的线程均有效。

    Current thread group:当前的线程组中的线程有效

    Current thread:当前线程有效。

    下面通过一个例子介绍一下Sharing mode三种模式数据的取数策略;

    测试计划结构:

    测试计划

    线程组A--线程1、线程2

    线程组B--线程1、线程2

    数据文件内容为:12345678

    1)数据文件置于线程组A子节点

    只有线程组A可以调用数据文件中的数据;,数据组B不可以调用数据文件中的数据;

    2)数据文件置于和线程组A、线程组B同一级别节点

    线程组A和线程组B都可以调用数据;

    线程共享模式为:所有线程

    所有线程执行1次,线程1-线程4的取数为:1234

    所有线程执行2次,第一次取数为:1234,第二次取数为:5678

    结论:线程共享模式为所有线程时,所有线程组共享同一个文件数据,同一次,每个线程的取数都不同;

     

    线程共享模式为:当前线程组

    所有线程执行1次,线程1-线程4的取数为:1122

    所有线程执行2次,第一次取数为:1122,第二次取数为:3344

    结论:线程共享模式为当前线程组时,当前线程组共享同一个文件数据,同一次,每个线程组中的不同线程取数相同;不同线程组中线程取数不同;

     

    线程共享模式为:当前线程

    所有线程执行1次,线程1-线程4的取数为:1111

    所有线程执行2次,第一次取数为:1111,第二次取数为:2222

    结论:线程共享模式为当前线程时,所有线程共享同一个文件数据,同一次,每个线程的取数都相同。

    3.2实例操作

    1、 准备一个txt的测试数据文件,并放到和脚本同级目录中。

    2、 配置csv data set config

    3、 添加一个http请求,并使用参数

     

    4、 查看结果树

     

  • 相关阅读:
    Swift学习笔记4
    《将博客搬至CSDN》
    传入一个integer数组,取出最大、最小值
    Centos7下完美安装并配置mysql5.6
    linux常用命令总结
    centos7下安装配置redis3.0.4
    VMware下centos桥接模式静态ip配置
    解决centos7下tomcat启动正常,无法访问项目的问题
    centos7系统下安装配置jdk、tomcat教程
    Apache+Tomcat+mod_jk实现负载均衡
  • 原文地址:https://www.cnblogs.com/hushuer/p/16140558.html
Copyright © 2020-2023  润新知