当前位置:   article > 正文

jmeter 函数_jmeter urldecode函数

jmeter urldecode函数

jmeter 函数

                

           

***************

函数

           

作用:实现表单内容参数化、数据运算、字符转换等

             

函数助手(jmeter提供的函数编写工具)

          

          

                 

函数说明:

  1. # beanshell:调用beanshell脚本计算参数,函数形式:${__BeanShell(value)},
  2. value可为beanshell语句、beanshell脚本
  3. ${__BeanShell("hello "+"gtlx")} ==> 字符串拼接:hello gtlx
  4. # char:将数字转换为unicode值,函数形式:${__char(num,...)}
  5. ${__char(65)}==> 将65转换为A
  6. ${__char(65,66)} ==> 将65,66转换为AB
  7. # counter:计数器,函数形式:${__counter(true|false,i)}
  8. true:每个线程独立计数、false:所有线程加总计数;i:计数变量名,可随意设置
  9. ${__counter(true,i)} ==> 每个线程独立计数,计数步长为1
  10. ${__counter(false,i)} ==> 所有线程加总计数
  11. # CSVRead:从文件中读取指定列的值,函数形式:${__CSVRead(fileName|*别名,列名|next|*alias)}
  12. 函数包含两个参数:第一个参数为文件名或者别名
  13. 列名从0开始编号、next读取下一行数据、*alias文件别名
  14. ${__CSVRead(file,0)}:读取文件第一行的0列数据
  15. ${__CSVRead(file,0)}${__CSVRead(file,next)}:迭代读取每一行的第0列数据
  16. ${__CSVRead(file,0)}${__CSVRead(file,1)}${__CSVRead(file,next)}:迭代读取每一行的第0、1列数据
  17. # escapeHtml:字符转换为html格式字符,函数形式:${__escapeHtml(str)}
  18. ${__escapeHtml("瓜田李下")} ==> "瓜田李下"
  19. # escapeOroRegexpChars:将正则表达式转换为java正则引擎能识别的表达式,函数形式:${__escapeOroRegexChars(value,name)}
  20. 函数包含两个参数:value正则表达式,name存储转换后的表达式(可选)
  21. ${__escapeOroRegexpChars(a*,name)} ==> 将a*转换为a\*
  22. # eval:返回引用的表达式的值,函数形式:${__eval(value)},value为引用的表达式
  23. ${__eval(${__BeanShell("hello "+"gtlx")})} ==> 返回 hello gtlx
  24. # evalVar:引用变量的值,函数形式:${__evalVar(var)},var为之前自定义的变量
  25. 自定义变量name = "瓜田李下", ${__evalVar(name)} ==> 返回 瓜田李下
  26. # FileToString:文件转换为字符串,函数形式:${__FileToString(fileName,encoding,name)}
  27. 参数说明:fileName文件全路径名、encoding文件编码、name存储转换后的字符串
  28. ${__FileToString(file,utf-8,value)} ==> 将file转换为字符串,用value存储字符串,可供后续sampler使用
  29. # intSum:整数求和,函数形式:${__intSum(num,...,value)}
  30. 参数说明:num一到多个,value存储计算后的值
  31. ${__intSum(1,value)} ==> 返回1
  32. ${__intSum(1,2value)} ==> 返回3
  33. ${__intSum(1,2,3,value)} ==> 返回6
  34. # longSum:长整数求和,同intSum
  35. # javaScript:返回javascript脚本执行的结果,函数形式:${__javaScript(expr,name)}
  36. 参数说明:expr为javaScript脚本,name存储计算后的值
  37. ${__javaScript(1+1,value)} ==> 返回2
  38. # jexl2、jexl3:计算jexl表达式,函数形式:${__jexl2(expr,name)}
  39. 参数说明:expr为jexl表达式,name存储计算后的结果
  40. ${__jexl2(vars.get("START.YMD",start))} ==> 返回 20220111
  41. ${__jexl3(2*3,start))} ==> 返回 6
  42. # log:返回输入的字符串信息,函数形式:${__log(str, level, throwable text, comment)}
  43. 参数说明:str为输出的字符串信息
  44. level:日志级别,可选值:OUT(打印到控制台及标准输出窗口,类似System.out)、
  45. ERR(打印到控制台及包标准输出窗口,类似System.err)、
  46. DEBUG、INFO(默认)、WARN、ERROR
  47. text:抛出的异常信息,可选
  48. comment:附加注释,可选
  49. # logn:与log类似,无返回结果
  50. # machineIP:返回主机ip,函数形式:${__machineIP(name)},name可选,用来存储返回的ip
  51. # machineName:返回主机名,函数形式:${__machineName(name)},name可选,用来存储返回的主机名
  52. # samplerName:返回当前取样名称,函数形式:${__samplerName(name)},name可选,用来存储返回值
  53. # TestPlanName:返回测试计划名称,函数形式:${__TestPlanName(name)},name可选,用来存储返回值
  54. # threadNum:返回线程号
  55. # time:返回当前时间,函数形式:${__time(format,name)},不指定格式默认返回毫秒数,name存储返回值
  56. # P:获取命令行中定义的属性,函数形式:${__P(pro,defaultValue)},pro为属性名,defaultValue为属性默认值
  57. # property:获取jmeter.properties中定义的属性,函数形式:${__property(pro,name)}
  58. pro为jmeter.properties中的属性name、
  59. name存储读取的值,可供后续sampler使用
  60. # setProperty:动态设置jmeter属性,函数形式:${__setProperty(name,value,true|false)}
  61. name属性名、value属性值、
  62. true|false是否返回原是值,默认false
  63. # split:拆分字符串,函数形式:${__split(str,name,delimeter)}
  64. str待拆分的字符串、
  65. name存储拆分后的字符串数组,如name=str,str_1可访问第一个数组元素
  66. delimeter分隔符,默认为逗号(,)
  67. # StringFromFile:从文件中读取数值,函数形式:${__StringFromFile(file,name,start,final)}
  68. file文件全路径名、name存储读取结果
  69. start、final文件名起始、终止序列号(D:\file1、D:\file2、D:\file3时指定文件)
  70. # random:生成随机数,函数形式:random(min,max,name),min最小值、max最大值、name存储返回的值
  71. # randomDate:生成随机日期,函数形式:randomDate(format,start,end),
  72. format日期格式,默认为yyyy-MM-dd,可选
  73. start开始时间,默认为今天,可选、
  74. end截止日期
  75. # randomString:生成随机字符串,函数形式:randomString(length,chars,name)
  76. length字符串长度
  77. chars字符串可选值,如"haa这个",可包含中文
  78. name存储返回的值
  79. # unescape:反转escape字符,函数形式:${__unescape(str)}
  80. # unescapeHtml:反转html格式字符,函数形式:${unescapeHtml(str)}
  81. # urlencode:url编码,函数形式:${__urlencode(str)}
  82. # urldecode:url解码,函数形式:${__urldecode(str)}
  83. # UUID:uuid算法生成的唯一字符串,函数形式:${__UUID}
  84. # V:执行变量表达式并返回结果,函数形式:${__V(expr,defaultValue)}
  85. 定义变量:a1=1,b1=1,${a1}${b1}可调用成功、${a${b1}}不能执行成功
  86. ${__V(a${b1})}可执行成功
  87. # regexFunction:正则表达式匹配上一个取样器的取样结果,并返回匹配结果
  88. # XPath:解析xml,返回匹配的值,函数形式:${__XPath(file,expr)},file为xml文件、expr为匹配表达式
  89. 表达式语法:
  90. /:根节点
  91. //:任意位置的某节点
  92. @:匹配属性
  93. *:匹配任何节点元素
  94. @*:匹配任何属性
  95. text():获取文本内容
  96. 示例:
  97. company:company所有的子节点
  98. /company:选取根节点company
  99. company/name:company下的所有name节点(直接子节点)
  100. company//name:company下的所有name节点(可不为直接子节点)
  101. //@type:选取所有名为type的属性

              

                     

***************

示例:CSVRead

           

person4.csv 文件

          

               

 线程组:1个线程循环4次执行

          

             

线程组 ==> java请求

          

               

线程组 ==> 查看结果树:点击运行,查看运行结果

            

 一个线程执行四次读取的都是相同的数据:第一行第一列数据

              

                 

线程组:4个线程,每个线程执行1次

          

             

线程组 ==> java请求 2

          

              

线程组 ==> 查看结果树:点击运行,查看运行结果

          

四个线程,每个线程分别读取一行数据

                

                    

线程组:1个线程循环执行4次

          

               

线程组 ==> java请求

          

              

线程组 ==> 查看结果树:点击运行,查看运行结果

           

 添加${__CSVRead(*file,next())}后,单个线程也可循环换行读取数据

          

             

线程组:4个线程,每个线程执行一次,测试读取多列数据

           

              

线程组 ==> java请求:${__CVSRead(*file,next())}放在最后,表示之后读取下一行

           

                  

线程组 ==> 查看结果树:点击运行,查看运行结果

           

线程换行同时读取第一列、第二列的数据

              

               

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/63762
推荐阅读
相关标签
  

闽ICP备14008679号