Jmeter常用函数---__setProperty();__Property();__P()

${__setProperty()}函数介绍

官方文档解释:

The setProperty function sets the value of a JMeter property. The default return value from the function is the empty string, so the function call can be used anywhere functions are valid.
该函数用来给JMeter属性设置值,默认返回值为空字符串,所以在函数在任何地方被调用是有效的

用法:

${__setProperty(property name, property value, True/False)}

property name : 属性名, 必填

property value  :  属性值,必填

True/False : 是否返回原始值,非必填,当设置为:true,将返回原始值

作用域:跨线程组调用, 可以在任意地方调用,但不能跟在import xxx 后面

备注:参数不用加双引号引用

 

一般使用搭配参数化使用,如在线程组中提取参数后,可以使用后置处理器进行使用

 

查看是否成功,可以通过变量显示,debug sample等;

 

 

 

${__property()}函数介绍

官方文档解释:The property function returns the value of a JMeter property. If the property value cannot be found, and no default has been supplied, it returns the property name. When supplying a default value, there is no need to provide a function name - the parameter can be set to null, and it will be ignored.
函数返回JMeter的属性值。如果找不到到属性值而且没有提供默认值,将返回属性名。在有提供默认值时,可以选择不用提供引用名(可选的),函数名的值可以设置为null,但会被忽略函数值;

用法: 

${__property(property name , variable name, default value)}

porperty name:  要检索的属性名,必填

variable name: 引用名,用于被赋值的变量,非必填

default value:默认值,非必填

 

${__ property(uuid)} :
返回uuid的值

${__property(uuid, aa)} :
拿到uuid的值并将uuiduuid赋值给 aa;

${__property(uuid, aa, abc)}:  
拿到uuid的值,如果 uuid 未定义即找不到,则把默认值abc的变量值赋值给 aa , aa ,如果默认值未定义则返回默认值的属性名;

${__property(uuid, , abc)}: 
返回的是匿名变量名,拿到uuid, 如果默认变量有赋值,则把abc的变量值赋值返回,如果默认值没有定义,则任何默认值的变量名;

 

${__P()}函数介绍

官方文档解释:This is a simplified property function which is intended for use with properties defined on the command line. Unlike the __property function, there is no option to save the value in a variable, and if no default value is supplied, it is assumed to be 1. The value of 1 was chosen because it is valid for common test variables such as loops, thread count, ramp up etc.
这个是简化搬的属性函数,旨在为用户在命令行使用属性定义。区别于__property函数,它不能有存储值的变量;如果没有提供默认值,默认为1,选择1的原因是它对常用的测试变量有效,例如:循环,线程数,ramp up.

用法: 

${__P(property name(要检索的属性名,必填), default value(默认值,非必填,不填默认为1)}
作用域:可以跨线程使用
注意:两个变量之间一定要用“,”隔开,如果变量中包含,需要要“\”反斜线转义
支持在命令行与beanshell中使用

 

${__P( arg, abc)}:返回arg的值,在arg未赋值情况,返回默认值abc,如果abc未赋值则返回属性名

 

 

 

总结:

${__setProperty()}与${__property()}/${__P()}一起配合使用,setProptety等于把值拿出来, 

__property/__P 1.可以把setProperty 的值直接拿出来, 2.可以对已存在的变量重新赋值 

 

 

 

__P是__property函数的简化版,用来返回jmeter属性的值,可以在命令行中使用也可以在beanshell中用,

举个例子:${__P(prop1)} 会返回属性prop1的值;${__P(prop1,www.bidu.com)} 会返回属性prop1的值,如果prop1未定义值,则返回www.baidu.com;

__property和__P之间的区别:用法上__property函数仅仅是比__P函数多了一个可以存值的变量,举个__property用法例子:${__property(prop1,var1,shanghai)}会返回prop1的值,如果prop1未定义值则会返回shanghai,同时会将prop1的值存到变量var1中

 

参考:

https://blog.csdn.net/evanzhang_z/article/details/102715619

posted @ 2021-04-10 18:37  沙丘蚂蚁慢慢爬  阅读(4118)  评论(0编辑  收藏  举报