zoukankan      html  css  js  c++  java
  • jmeter 参数化3种

    一、利用函数助手获取参数值

    选项->函数助手对话框

    __CSVRead,

    __Random,

    生成的函数字符串:${__Random(,,)}第一个参数为随机数的下限,第二个参数为随机数的上限,第三个参数为储存随机数的变量名;
                                       ${__CSVRead(,)}第一个参数是文件名(包含路径),第二个参数是文件中的列(列数从0开始);

    参数化数据


    __CSVRead:复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以了,点击运行会调用相应路径下的参数文件


    _Random函数是从某数据段随机读取数据替换参数,当需要添加多条数据记录且某些字段需要唯一性时使用。



    二、利用配置元件(CSV Data Set Config)

    1.选中线程组,点击右键,添加-配置元件-CSV Data Set Config

    1)、Filename:文件名,指保存信息的文件目录,可以相对或者绝对路径
    2)、File encoding:csv文件编码,可以不填,一般为UTF-8
    3)、Variable Names(comma-delimited):变量名称,用逗号分隔,test1代表参数化文档中的第一列,test2代表参数化文档中的第二列,变量使用格式 ${name}
    4)、Delimiter(use ' for tab'):定义分隔符为',',若参数化文档中有多列,则每列间用逗号分隔
    5)、Allow quoted data:是否允许引用数据(没用过)
    6)、Recycle on EOF:到了文件尾处,是否循环读取参数。因为CSV Data Set Config一次读入一行,分割后存入若干变量交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入
    7)、Stop thread on EOF:到了文件尾处,是否停止线程,和Recycle on EOF会有矛盾:
      a.  当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,通俗的讲,在前面控制了不停的循环读取,后面再来让stop或run没有任何意义
      b.  当Recycle on EOF 选择flase时,Stop thread on EOF选择true,线程4个,参数3个,那么只会请求3次
      c.  当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.  如果测试计划中有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn,CSV Data Set Config放在线程组A的下级组织树,不管怎么设置Sharing mode,都只针对线程组A且取之情况一样:线程A1取第一行,线程A2取第二行。
      b.  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行。

    2.填写刚才定义好的变量

    还要注意CSV Data Set Config放的位置影响取数结果:

    场景一:如果放在循环控制器的上面:线程数:1,循环数:10,实际情况:循环上面的csv数据只读了线程数,下面的循环请求没有重新拿数据,还是使用第一次线程拿的数据,如图:

    场景二:如果放在循环控制器的下面:线程数:1,循环数:10,实际情况:循环下面的csv数据只读了线程数,每次循环都会拿新的数据顺序取值,如图:

    所以CSV Data Set Config放的位置和取数方式有很大的关系。


    三、用户自定义变量

    一般定义测试系统的固定使用的变量,比如主机地址端口号,数据库账号密码等。选中线程组,点击右键,添加-配置元件-用户定义的变量



    值可以直接输入,也可通过函数__CSVRead从文件中读取,还可以通过前缀加随机数和方法获取。

    比如用户名为user_0到user_100的用户,那么用户名可设置名user_${__Random(0,100,)}


    但是这种每次执行的多个线程所替换的参数一样,因为先获取到随机参数,再执行多个HTTP请求。

    转自原文:https://blog.csdn.net/seven_five577/article/details/55106155

  • 相关阅读:
    函数重载和函数指针在一起
    Uva
    Uva
    Uva
    Uva
    Uva
    CCPC-Wannafly-day5
    CCPC-Wannafly-day3
    CCPC-Wannafly-day2
    CCPC-Wannafly-Winter 2020.01.12总结
  • 原文地址:https://www.cnblogs.com/lisa2016/p/11162762.html
Copyright © 2011-2022 走看看