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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM