详解JMeter函数和变量
JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用。函数调用的语法如下:
${__functionName(var1,var2,var3)}
其中,__functionName匹配被调用的函数名称。用圆括号包含函数的形参,例如${__time(YMD)},不同函数要求的参数也不同。有些JMeter函数不要求参数,则可以不使用圆括号,例如${__threadNum}。
如果一个函数的参数中包含逗号,那么必须对逗号进行转义(使用"\"),否则JMeter会把逗号当成参数分隔符。例如:
- ${__time(EEE\, d MMM yyyy)}
变量引用的语法如下:
- ${VARIABLE}
如果测试计划中引用了未定义的变量或者函数,那么JMeter并不会报告/记录错误信息,引用返回的值就是引用自身。例如,假设字符串UNDEF没有被定义为变量,那么${UNDEF}返回的值就是${UNDEF}。变量、函数(包括属性)都是大小写敏感的。JMeter 2.3.1及其后续版本会剔除参数名中的空格,例如,${__Random(1,63, LOTTERY )}中的"LOTTERY "会被"LOTTERY"所代替。
属性不同于变量。变量对线程而言是局部的,所有线程都可以访问属性,就使用__P或者__property函数。
如表11-1所示为JMeter内置函数的列表(按类型划分)。
表11-1 JMeter内置函数列表
|
函数类型 |
函数名称 |
注释 |
|
Information |
get thread number |
|
|
Information |
get the local machine name |
|
|
Information |
return current time in various formats |
|
|
Information |
log (or display) a message (and return the value) |
|
|
Information |
log (or display) a message (empty return value) |
|
|
Input |
read a line from a file |
|
|
Input |
read an entire file |
|
|
Input |
read from CSV delimited file |
|
|
Input |
Use an XPath expression to read from a file |
|
|
Calculation |
generate an incrementing number |
|
|
Calculation |
add int numbers |
|
|
Calculation |
add long numbers |
|
|
Calculation |
generate a random number |
|
|
Scripting |
run a BeanShell script |
|
|
Scripting |
process JavaScript (Mozilla Rhino) |
|
|
Scripting |
evaluate a Commons Jexl expression |
|
|
Properties |
read a property |
|
|
Properties |
read a property (shorthand method) |
|
|
Properties |
set a JMeter property |
|
|
Variables |
Split a string into variables |
|
|
Variables |
evaluate a variable name |
|
|
Variables |
evaluate a variable expression |
|
|
Variables |
evaluate an expression stored in a variable |
|
|
String |
parse previous response using a regular expression |
|
|
String |
generate Unicode char values from a list of numbers |
|
|
String |
Process strings containing Java escapes (e.g. \n & \t) |
|
|
String |
Decode HTML-encoded strings |
|
|
String |
Encode strings using HTML encoding |
1.使用函数可以做些什么
目前有两种类型的函数:用户定义的静态值(或者变量)和JMeter内置函数。
当需要编译测试树或者提交运行时,用户可以使用自定义变量来代替常用的静态值。这种替换只在测试的开始阶段执行一次。一个典型的应用就是使用自定义变量来替换所有HTTP请求的DOMAIN域,例如,做出轻微改动,就可以让同一个测试脚本适配多个服务器。
需要注意,目前变量不支持嵌套;例如${Var${N}}不能正常工作。但是在JMeter 2.2及其以后版本中,可以借助函数__V (variable)来达成嵌套变量的目的(如${__V(Var${N})})。在早期的JMeter版本中可以使用${__BeanShell(vars.get("Var${N}")}。
详解JMeter函数和变量的更多相关文章
- 详解JMeter函数和变量(转载)
详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...
- ViewPager 详解(二)---详解四大函数
前言:上篇中我们讲解了如何快速实现了一个滑动页面,但问题在于,PageAdapter必须要重写的四个函数,它们都各有什么意义,在上节的函数内部为什么要这么实现,下面我们就结合Android的API说明 ...
- 详解JMeter正则表达式
详解JMeter正则表达式(1) 1.概览 JMeter中包含范本匹配软件Apache Jakarta ORO .在Jakarta网站上有一些关于它的文档,例如a summary of the pat ...
- 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)
详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类 Python中函数参数定义及调用函数时传参 ...
- LESS详解之函数(四)
之前已经为大家介绍了一些LESS函数,大家应该对之前介绍的有所了解了.下面依旧为大家介绍LESS的函数,附加着一些小例子.希望这些有关LESS的函数能在大家编写LESS的时候有所帮助. saturat ...
- 详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别
详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别 http://blog.sina.com.cn/s/blog_686999de0100jgda.html 实例: ...
- 详解python函数的参数
详解python函数的参数 一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: ...
- [转帖]【Oracle】详解Oracle中NLS_LANG变量的使用
[Oracle]详解Oracle中NLS_LANG变量的使用 https://www.cnblogs.com/HDK2016/p/6880560.html NLS_LANG=LANGUAGE_TERR ...
- C++学习45 流成员函数put输出单个字符 cin输入流详解 get()函数读入一个字符
在程序中一般用cout和插入运算符“<<”实现输出,cout流在内存中有相应的缓冲区.有时用户还有特殊的输出要求,例如只输出一个字符.ostream类除了提供上面介绍过的用于格式控制的成员 ...
随机推荐
- 公钥\私人 ssh避password登陆
相关概念以前见过,决不要注意,使用公共密钥管理之前,腾讯云主机的备案机,非常头发的感觉,查了一下相关资料,这里总结下: 字符a:192.168.7.188 (ubuntu) 字符b:192.168.7 ...
- Cocos2d-x3.0游戏实例《不要救我》三——背景滚动周期
好.让我们来解释一下这个无限循环滚动的背景.这方面的知识一直讲到烂.我以前的文章还介绍了.所以不是那么特别清楚. 笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www. ...
- dev XtraMessageBox按钮显示中文
dev的XtraMessageBox控件使用起来很美观,但默认显示确定的是英文,如下图: 通过下面代码可使“OK”显示为中文:首先创建一个继承自Localizer的类: using DevExpres ...
- A simple Test Client built on top of ASP.NET Web API Help Page
Step 1: Install the Test Client package Install the WebApiTestClient package from the NuGet Package ...
- java提高篇(十二)-----equals()
equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等.该方法的源码如下: public boolean equals(Object obj) { retu ...
- Linux X86在下面TLB机制
TLB - translation lookaside buffer 快表.直译为翻译后备缓冲器,也能够理解为页表缓冲.地址变换快速缓存. 因为页表存放在主存中,因此程序每次訪存至少须要两次:一次訪存 ...
- [原创].NET 分布式架构开发实战五 Framework改进篇
原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...
- 玩转Web之Jsp(三)-----Jsp+SQLServer 用sql语句实现分页
在BBS的实现里,jsp与sqlserver 结合的操作中,怎样实现分页,使每页显示根帖的名字,并按发表时间降序排列? 在这里举例说明,page_size为每页显示的条数,pageNo为当前页数,st ...
- 50一个Android开发技巧(01 利用好layout_weight属性)
问题:如何将一个Button放置在布局的中间,并设置其宽度parent的50%? 分析:问题想要达到的效果应该是这样: (原文地址:http://blog.csdn.net/vector_yi/art ...
- 如何从Terminal Command Line编译并运行Scope
Ubuntu SDK我们大部分的开发者是非常有效的.它甚至可以帮助我们进行在线调试.在这篇文章中,我们介绍了如何使用command line编译和执行我们scope. 1)创建一个主Scope 我们能 ...