• Jmeter函数助手大全


    __BeanShell

    • 入参:BeanShell语法的程序语句或者Bean Shell脚本文件
    • 示例:
    ${__BeanShell(123*456,)}:返回56088;
    ${__BeanShell(source("function.bsh",))}:执行在function.bsh中的脚本;
     

    __changeCase

    • 作用:修改字符串大小写
    • 入参:字符串
    • 示例:
    ${__changeCase(test,UPPER,upper_test)}
     

    __char

    • 作用:把一组数字转化成Unicode字符
    • 入参:数字
    • 示例:
    ${__char(65,66)},变成AB

    __counter

    • 作用:作为一个计数器使用,支持多线程(多用户)
    • 入参:计数变量i,是否为线程计数器True/False
    • 示例
    ${__counter(FALSE,i)}; 全局计数器
    ${__counter(TRUE,i)}; 每个用户有自己的计数器

    __CSVRead

    • 作用:从文件读取指定列的值(读取固定值/读取动态值/使用文件别名)
    • 入参:文件路径;读取方式;
    • 示例
    ${__CSVRead(E:user_info.csv,0)};读取第一列的值
    
    ${__CSVRead(E:user_info.csv,next())}; 每次读取下一次的值,配合第一条使用,否则不知道从哪里开始
    
    ${__CSVRead(E:user_info.csv,*user_info)};使用别名,然后通过以下方法获取数据
    ${__CSVRead(*user_info, 1)}
     

    __dataTimeConvert

    • 作用:格式化日期
    • 入参:日期/时间
    • 示例:
    ${__dateTimeConvert(01212018,MMddyyyy,dd/MM/yyyy,)}
    
    ${__dateTimeConvert(1526574881000,,dd/MM/yyyy HH:mm,)}; 官方例子,但是本地没试出来
     

    __digest

    • 作用:加密
    • 入参:
      • 加密算法:MD2, MD5, SHA-1, SHA224, SHA256, SHA384, SHA512
      • 需要加密的值
      • 撒盐加密
      • 是否要转成大写
      • 变量名称

    关于撒盐加密(salt)

    使用salt加密,它的基本想法是这样的:

    1.用户注册时,在密码上撒一些盐。生成一种味道,记住味道。
    2.用户再次登陆时,在输入的密码上撒盐,闻一闻,判断是否和原来的味道相同,相同就让你吃饭。

     
     
    • 示例:
    ${__digest(MD5,test,1,,)}
     

    __escapeHtml

    • 作用:字符转成Html格式的字符,这样编码后传给浏览器,浏览器就能识别了
    • 入参:字符
    • 示例:
     

    __escapeOroRegexChars

    • 作用:把正则表达式转换成Java正则引擎能识别的表达式
    • 入参:正则表达式
    • 示例:
    ${__escapeOroRegexpChars([^"].+?,test)}
     

    __escapeXml

    • 作用:字符转成xml格式的字符
    • 入参:字符
    • 示例:
    ${__escapeXml("bread" & 'butter')}
     

    __eval

    • 作用:返回一个表达式的值,可以用此函数表达式来嵌套引用表达式
    • 入参:字符
    • 示例:
    name=Smith 
    column=age 
    table=birthdays 
    SQL=select ${column} from ${table} where name='${name}' 
    ${__eval(${SQL})}; 引用SQL变量
     

    __evalVar

    • 作用:返回一个表达式的结果,存到一个变量中,供使用
    • 入参:字符
    • 示例:
    QUERY = select ${column} from ${table}; column=name, table=customers
    ${__evalVar(QUERY)} = select name from customers

    __fileToString

    • 作用:读取文件保存至变量中
    • 入参:文件路径;编码格式;变量名
    • 示例:
    ${__FileToString(E:user_info.csv,utf-8,user_info)}
     

    __groovy

    • 作用:执行Apache Groovy脚本,并返回结果
    • 入参:表达式;变量名
    • 示例:
    ${__groovy(123*456,test)}
     

    __intSum

    • 作用:整数求和,多个数字之间用逗号分隔
    • 入参:第一个整数;第二个及之后的整数;变量名
    • 示例:
    ${__intSum(1,2,3,4,5,6,7,8,test)}
     

    __isPropDefined

    • 作用:判断属性是否存在
    • 入参:属性名称
    • 示例:
    ${__isPropDefined(START.HMS)}
     

    __isVarDefined

    • 作用:判断变量是否存在
    • 入参:变量名称
    • 示例:
    ${__isVarDefined(JMeterThread.last_sample_ok)}
     

    __javaScript

    • 作用:返回js脚本执行结果
    • 入参:js表达式;变量名
    • 示例:
    ${__javaScript(new Date(),date)}
     

    __jexl2

    • 作用:返回jexl表达式执行结果,使用JEXL2
    • 入参:jexl表达式;变量名
    • 示例:
    ${__jexl2(vars.get("START.YMD"),test)}
     

    __jexl3

    • 作用:返回jexl表达式执行结果,JEXL3
    • 入参:jexl表达式;变量名
    • 示例:
    ${__jexl3(vars.get("START.YMD"),test)}
     
    image.png

    __log

    • 作用:日志方法,返回输入的字符串信息
    • 入参:字符串;日志级别;抛出的异常信息;附加信息
      • OUT:控制台打印
      • ERR:控制台输出,同时打印到标准输出
      • DEBUG:控制台输出,DEBUG级别以上的都打印
      • INFO:控制台打印INFO及ERROR级别的日志
      • WARN:控制台打印WARN,INFO,ERROR级别的日志
      • ERROR:控制台打印ERROR级别的日志
    • 示例:
    ${__log(testing,ERR,error throw test,error test)}
     

    __logn

    与__log类似,不过它只记录一条日志,不返回值。

    ${__logn(testing,,)}
     

    __longSum

    • 作用:计算长整型的和
    • 入参:整数
    • 示例:
    ${__longSum(1,2,3,4,sum)}
     

    __machineIP

    • 作用:引用返回本机IP
    • 入参:变量名
    • 示例:
    ${__machineIP(ip)}
     

    __machineName

    • 作用:引用返回本机Name
    • 入参:变量名
    • 示例:
    ${__machineName(name)}
     

    __P

    • 作用:获取命令行中定义的属性,非GUI方式运行测试计划时这个函数可用来做参数化,由运行命令动态指定参数值,方便与Jenkins等集成完成性能测试工作
    • 入参:属性名称;默认值
    • 示例:
    ${__P(group1.threads,)}
     

    __property

    • 作用:获取Jmeter的属性,%JMETER_HOME%injmeter.properties
    • 入参:属性名称;变量名;默认值
    • 示例:
    ${__property(log_level.jmeter,log_Level,)}
     

    __Random

    • 作用:生成指定范围内的随机数
    • 入参:左右范围;变量名
    • 示例:
    ${__Random(1,20,random_num)}
     

    __RandomDate

    • 作用:生成指定范围内的日期
    • 入参:日期格式;左右范围;语言;变量名
    • 示例:
    ${__RandomDate(,,2050-07-08,,)}
     

    __RandomFromMultipleVars

    • 作用:给定的多个值中随机取值
    • 入参:多个值,使用|分隔;变量名
    • 示例:
    ${__RandomFromMultipleVars(a|b|c|d|e,select)}
     

    __RandomString

    • 作用:生成指定长度的字符串
    • 入参:字符串长度;可选字符串;变量名
    • 示例:
    ${__RandomString(5,a3fxis,random_char)}
     

    __regexFunction

    • 作用:提取正则表达式
    • 入参:
      • 用于解析服务器响应数据的正则表达式
      • 模板字符串([group_number]
      • 告诉JMeter使用第几次匹配
        • 整数n:使用第n个匹配项;
        • RAND:随机选择一个匹配项;
        • ALL:使用所有匹配项,为每个匹配项创建一个模板字符串,并将它们连接在一起
        • 浮点值0到1之间:根据公式(找到的总匹配数目*指定浮点值)计算使用第几个匹配项,计算值向最近的整数取整
      • 如果在上一个参数中选择了“ALL”,那么这第4个参数会被插入到重复的模板值之间
      • 如果没有找到匹配项返回的默认值
      • 重用函数解析值的引用名
      • 变量名称
    • 示例:
    ${__regexFunction(road(.*)test,$1$,1,,,,)}
     

    __samplerName

    • 作用:获取当前按sampler的名称
    • 入参:变量名
    • 示例:
    ${__samplerName(sample_name)}
     

    __setProperty

    • 作用:动态设置jmeter属性
    • 入参:属性名称;属性值;是否返回函数结果
    • 示例:
    ${__setProperty(log_level.jmeter,Debug,true)}
     

    __split

    • 作用:拆分字符串
    • 入参:待拆分字符串;变量名(使用变量名_x来访问第x个拆分结果);分隔符
    • 示例:
    ${__split(test|is|intresting,para,|)}
     

    __StringFromFile

    • 作用:从文件中读取内容,一行一行的读取,读完再从头开始
    • 入参:文件全路径,变量名,多文件读取起止
    • 示例:
    ${__StringFromFile(D:user_info.txt,info,,)}
     

    __TestPlanName

    • 作用:获取测试计划名称
    • 入参:无
    • 示例:
    ${__TestPlanName}
     

    __threadNum

    • 作用:返回当前线程号
    • 入参:无
    • 示例:
    ${__threadNum}
     

    __time

    • 作用:返回当前时间,可指定返回格式,由SimpleDateFormat类处理函数格式
      • 年:yyyy
      • 月:MM
      • 日:dd
      • 时:hh
      • 分:mm
      • 秒:ss
    • 入参:返回格式;变量名
    • 示例:
    ${__time(yyyy-MM-dd hh:mm:ss,)}
     

    __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,,,c)}
     

    __unescape

    • 作用:反转escape字符
    • 入参:字符
    • 示例:
    ${__unescape(
    )}
     

    __unescapeHtml

    • 作用:反转URL连接中的Unicode编码字符
    • 入参:字符
    • 示例:
    ${__unescapeHtml( )}
     

    __urldecode

    • 作用:decode application/x-www-form-urlencoded字符串
    • 入参:待decode字符串
    • 示例:
    ${__urldecode(Word+%22school%22+is+%22%C3%A9cole%22+in+french)}
     

    __urlencode

    • 作用:与urldecode
    • 入参:待encode字符串
    • 示例:
    ${__urlencode(Word "school" is "école" in french)}
     

    __UUID

    • 作用:获取UUID
    • 入参:无
    • 示例:
    ${__UUID}
     

    __V

    • 作用:获取含变量名的表达式
    • 入参:含变量名的表达式
    • 示例:
    ${A1} - 可以正确访问
    ${A${N}} - 无法访问,嵌套变量
    ${__V(A${N})} - 可以访问。A${N}变成A1,__V函数返回A1的值
     

    __XPath

    • 作用:根据xpath获取xml节点内容,没有匹配到,则返回空字符串
    • 入参:待解析的xml文件;xpath表达式匹配xml节点
    • 示例:
    ${__XPath(/path/to/build.xml,//target/@name)}
     

    可直接访问变量

    • log:直接调用logger函数
    • ctx:获取JMeterContent对象
    • vars:获取JMeter定义的变量
    • props:获取JMeter配置属性
    • threadName:获取Jmeter线程名
    • sampler:获取Sampler实例
    • sampleResult:获取SamplerResult实例
    • OUT:类似System.out.println, OUT.println()



    原文链接:https://www.jianshu.com/p/c66b846e2ada

  • 相关阅读:
    [转]用asp.net实现远程获取其他网站页面指定内容
    Occupation career planning
    【原创】Self-Contained Container(自包含容器)
    Kindle 转换器
    Win32 多线程学习笔记
    OC学习心得【适合初学者】
    OC-通讯录
    植物大战僵尸
    三、属性和点语法
    二十、函数指针高级(动态调用)
  • 原文地址:https://www.cnblogs.com/renshengruxi/p/13387365.html
Copyright © 2020-2023  润新知