zoukankan      html  css  js  c++  java
  • Jmeter入门级--函数助手的使用

    启动jmeter后,可以在JMeter的选项菜单中找到函数助手对话框(快捷键:Ctrl+Shift+F1)

     可以从下拉列表中选择一个函数,并为其参数设定值,不同函数要求的参数也不同;

    表格的左边一列是函数参数的简要描述,右边一列是供用户填充参数的值

    Tips:

    • 如果参数包含逗号,那么一定要使用  来转义,否则 JMeter 会把它当作一个参数分隔符;
    • 实际使用时,一般通过函数助手对话框来生成函数字符串,不容易出错。
    • 一些函数中此项参数:Name of variable in which to store the result (optional)  变量名 :用于后续调用该函数的变量名称

    JMeter 中的函数主要分为如下几类:

     

     

    __setProperty

    函数__setProperty用于设置JMeter属性的值。函数的默认返回值是空字符串,因此该函数可以被用在任何地方,只要对函数本身调用是正确的。

    通过将函数可选的第3个参数设置为"true",函数就会返回属性的原始值。属性对于JMeter是全局的,因此可以被用来在线程和线程组之间通信。

    _CSVRead

    • 从一个 CSV 文件中返回一个字符串,支持多个文件名。
    • 当第一次调用该函数时,文件将被打开并读取到一个内部数组中。如果检测到空行,这将被视为文件的末尾。
    • 所有对同一文件名的后续引用都使用相同的内部数组,文件名区分大小写。
    • 每个线程都有自己的指向文件数组中当前行的内部指针。当线程首先引用文件时,它将在数组中分配下一个空闲行,因此每个线程将访问与所有其他线程不同的行(除非数组中的线程多于行)。

     

     注意:

    该函数不适合用于大型文件,因为整个文件都存储在内存中。

    对于较大的文件,最好使用 CSV Data Set Config 或者 StringFromFile。

    默认情况下,该函数在每个逗号处拆分行。如果要输入包含逗号的列,则需要通过设置属性将分隔符更改为不出现在任何列数据中的字符,修改 jmeter.properties 文件中的 csvread.delimiter=。

    1.点击选项----选择 函数助手对话框,选择_CSVRead

    CSV file to get values from | * ,这个参数是文件的路径,csv的文件分隔符是逗号,也可以使用txt文本进行逗号分隔

    CSV文件列号| next| *alias  取列数,一一对应

    点击生成,这里是从0开始取值的,0代表取的文件第一列,1代表取的第二列

     

      2.将${__CSVRead(E:JMeterBIschoolName.txt,0)}复制

     

      设置线程组--线程数

      将依次取不同入参值请求

     __StringFromFile

    • 用于从文本文件中读取字符串,每次读取一行,支持读取多个文件。
    • 使用配置元件CSV Data Set Config ,也能达到相同的目的,而且方法更简单,但是它目前不支持多个输入文件。
    • 每次调用函数,都会从文件中读取下一行。当到达文件末尾时,函数又会从文件开始处重新读取,直到最大循环次数。如果在一个测试脚本中对该函数有多次引用,那么每一次引用都会独立打开文件,即使文件名是相同的(如果函数读取的值,在脚本其他地方也有使用,那么就需要为每一次函数调用指定不同的变量名)。
    • 如果在打开或者读取文件时发生错误,那么函数就会返回字符串 **ERR**。
    • 启动序号:初始的序列号,如果省略,那么结束序列号就代表文件的循环读取次数。
    • 末端序号:结束序列号,如果省略,那么序列号会无限增长。

     

    • #:插入数字,没有前导零或空格。
    • 000:插入数字,数字不足三位时,将插入前导零补足三位;数字超过三位时,则插入数字实际位数。

    用法说明:

     上面的 . 是格式化字符,必须用单引号括起来

    __RandomFromMultipleVars

    1.首先要创建用户定义的变量,如下图

      2.创建函数 ${__RandomFromMultipleVars(name1|name2|name3,name)},函数中几个变量名用‘|’隔开,这个函数的意义在于:在设定的几个值中随机使用其一,如下在name1、nema2、name3中随机使用

      3.在body中使用:"name":"${__RandomFromMultipleVars(name1|name2|name3,name)}",必须和用户定义的变量一起使用

     __time

    ${__time(,)} 实时获取时间,精确到 13 位数(“毫秒” 格式)时间戳:1555655388515

    ${__time(/1000,)} 实时获取时间,精确到 10 位数(“秒” 格式)时间戳:1555655438

      ${__time(yyyy-MM-dd HH:mm:ss:SSS,参数名)} 实时获取时间,格式化生成时间格式 yyyy-MM-dd HH:mm:ss:SSS (年-月-日 时:分:秒:毫秒)

     __TimeShift(格式,日期,移位,语言环境,变量):可对日期进行移位加减操作

    “PT20.345S”解析为“20.345秒”
    
    “PT15M”解析为“15分钟”
    
    “PT10H”解析为“10小时”
    
    “P2D”解析为“2天”
    
    “P2DT3H4M”解析为“2天,3小时和4分钟”
    
    “P-6H3M”解析为“-6小时+3分钟”
    
    “-P6H3M”解析为“-6小时-3分钟”
    
    “-P-6H + 3M”解析为“+6小时和-3分钟”

    指定格式:

    ${__timeShift(yyyy-MM-dd HH:mm:ss,,PT20.345S,,)}:以指定格式创建当前日期,再加上20.345S
    
    ${__timeShift(dd-MM-y-HH-mm-ss,,P1DT3H4M,,)}:以指定格式创建当前日期,再加上一天,三小时和四分钟
    
    ${__timeShift(dd/MM/yyyy,,P-1D,,)}:以指定格式创建当前日期,减去一天
    
    ${__timeShift(dd/MM/yyyy,,P365D,,)}:以指定格式创建当前日期,再加上365天

      

     参考文件:https://blog.csdn.net/lijing742180/article/details/86579160

  • 相关阅读:
    webpack-dev-server 源码
    2021前端会有什么新的变化
    父类 超类 基类 子类 派生类
    Java的权限修饰符(public,private,protected,默认friendly)
    class修饰符public、private、protected、static、abstract
    hash和签名 、证书
    前端加密解密crypto
    appid app_key app_secret
    sdk开发 、sdk与插件的区别
    CF76C
  • 原文地址:https://www.cnblogs.com/87060524test/p/12253277.html
Copyright © 2011-2022 走看看