JMeter24個常用函數(二)

發表于:2020-11-16 10:12  作者:天性懶惰   來源:博客園

字體: | 上一篇 | 下一篇 |我要投稿 | 推薦標簽: 性能測試工具 Jmeter

  十一、_RandomString():隨機字符串函數
  1、Randomstringlength:隨機字符的長度
  2、Charstouseforrandomstringgeneration:用來生成隨機字符串的字符,可以是純數字,純字符,字符字母數字組合
  3、Nameofvariableinwhichtostoretheresult(optional):隨機生成的字符被變量保存
  4、${__RandomString(6,abcdefgh1234566,ranstr)},解釋:隨機生成一個6位長度的字符串被ranstr保存;
  十二、__property
  1、函數__property會返回一個JMeter屬性的值。如果函數找不到屬性值,而又沒有提供默認值,則它會返回屬性的名稱。
  2、例如,
  ${__property(user.dir)}:返回屬性user.dir的值。
  ${__property(user.dir,UDIR)}:返回屬性user.dir的值,并保存在變量UDIR中。
  ${__property(abcd,ABCD,atod)}:返回屬性abcd的值(如果屬性沒有定義,返回"atod"),并保存在變量ABCD中。
  ${__property(abcd,,atod)}:返回屬性abcd的值(如果屬性沒有定義,返回"atod"),但是并不保存函數的返回值。
  十三、_P
  1、函數_P是一個簡化版的屬性函數,目的是使用在命令行中定義的屬性。
  2、不同于函數_property,本函數沒有提供選項用于設置保存屬性值的變量。另外,如果沒有設置默認值,默認值自動設為1。
  3、例如:定義屬性值:
  jmeter-Jgroup1.threads=7-Jhostname1=www.realhost.edu
  獲取值如下:
  ${__P(group1.threads)}:返回屬性group1.threads的值。
  ${__P(group1.loops)}:返回屬性group1.loops的值。
  ${__P(hostname,www.baidu.com)}:返回屬性hostname的值,如果沒有定義該屬性則返回值www.baidu.com。
  在上面的例子中,第一個函數調用返回7,第二個函數調用返回1,而最后一個函數調用返回www.baidu.com(除非這些屬性在其他地方有定義)。
  十四、__log
  1、函數__log會記錄一條日志,并返回函數的輸入字符串。
  2、OUT和ERR的日志級別,將會分別導致輸出記錄到System.out和System.err中。在這種情況下,輸出總是會被打印(它不依賴于當前的日志設置)。
  例如:
  ${__log(Message)}:寫入日志文件,形如"...threadName:Message"。
  ${__log(Message,OUT)}:寫到控制臺窗口。
  ${__log(${VAR},,,VAR=)}:寫入日志文件,形如"...threadNameVAR=value"。
  十五、__split:字符串分割函數
  1、函數__split會通過分隔符來拆分傳遞給它的字符串,并返回原始的字符串。如果分隔符緊挨在一起,那么函數就會以變量值的形式返回"?"。拆分出來的字符串,以變量${VAR_1}、{VAR_2}…以此類推的形式加以返回。
  2、分隔符默認是逗號,如果你想要多此一舉,明確指定使用逗號,需要對逗號轉義,如“\,”
  3、例如,在測試計劃中定義變量VAR="a||c|":
  ${__split(${VAR},VAR),|}:該函數調用會返回VAR變量的值,例如"a||c|",并設定VAR_n=4、VAR_1=a、VAR_2=?、VAR_3=c、VAR_4=?、VAR_5=null變量的值。
  十六、__XPath
  1、函數__XPath讀取XML文件,并在文件中尋找與指定XPath相匹配的地方。每調用函數一次,就會返回下一個匹配項。到達文件末尾后,會從頭開始。如果沒有匹配的節點,那么函數會返回空字符串,另外,還會向JMeter日志文件寫一條警告信息。
  整個節點列表都會被保存在內存之中。
  例如:
  ${__XPath(/path/to/build.xml,//target/@name)}
  這會找到build.xml文件中的所有目標節點,并返回下一個name屬性的內容。
  十七、__setProperty
  1、函數__setProperty用于設置JMeter屬性的值。函數的默認返回值是空字符串,因此該函數可以被用在任何地方,只要對函數本身調用是正確的。
  2、通過將函數可選的第3個參數設置為"true",函數就會返回屬性的原始值。
  3、屬性對于JMeter是全局的,因此可以被用來在線程和線程組之間通信。
  十八、__time
  1、函數__time可以通過多種格式返回當前時間。
  2、如果省略了格式字符串,那么函數會以毫秒的形式返回當前時間。其他情況下,當前時間會被轉成簡單日期格式。包含如下形式:
  YMD=yyyyMMdd。
  HMS=HHmmss。
  YMDHMS=yyyyMMdd-HHmmss。
  USER1=JMeter屬性time.USER1。
  USER2=JMeter屬性time.USER2。
  用戶可以通過修改JMeter屬性文件來改變默認格式,或者自定義格式,例如修改YMD格式:time.YMD=yyMMdd。
  十九、__V
  1、函數__V可以用于執行變量名表達式,并返回執行結果。它可以被用于執行嵌套函數引用(目前JMeter不支持)。
  2、例如,如果存在變量A1、A2和N=1,則:
  ${A1}:能正常工作。
  ${A${N}}:無法正常工作(嵌套變量引用)。
  ${__V(A${N})}:可以正常工作。A${N}變為A1,函數__V返回變量值A1。
  二十、__evalVar
  1、函數__evalVar可以用來執行保存在變量中的表達式,并返回執行結果。
  如此一來,用戶可以從文件中讀取一行字符串,并處理字符串中引用的變量。
  2、例如,假設變量"query"中包含有"select${column}from${table}",而"column"和"table"中分別包含有"name"和"customers",那么${__evalVar(query)}將會執行"selectnamefromcustomers"。
  二十一、__eval
  1、函數__eval可以用來執行一個字符串表達式,并返回執行結果。
  如此一來,用戶就可以對字符串(存儲在變量中)中的變量和函數引用做出修改。
  2、例如,給定變量name=Smith、column=age、table=birthdays、SQL=select${column}from${table}wherename='${name}',那么通過${__eval(${SQL})},就能執行"selectagefrombirthdayswherename='Smith'"。這樣一來,就可以與CSV數據集相互配合,例如,將SQL語句和值都定義在數據文件中。
  二十二、__escapeHtml
  1、函數__escapeHtml用于轉義字符串中的字符(使用HTML實體)。支持HTML4.0實體。
  二十三、__unescapeHtml
  1、函數__unescapeHtml用于反轉義一個包含HTML實體的字符串,將其變為包含實際Unicode字符的字符串。支持HTML4.0實體。
  2、如果函數不認識某個實體,就會將實體保留下來,并一字不差地插入結果字符串中。例如,">&zzzz;x"會變為">&zzzz;x"。
  二十四、__FileToString
  1、函數__FileToString可以被用來讀取整個文件。每次對該函數的調用,都會讀取整個文件。
  2、如果在打開或者讀取文件時發生錯誤,那么函數就會返回字符串"**ERR**"。

  本文內容不用于商業目的,如涉及知識產權問題,請權利人聯系博為峰小編(021-64471599-8017),我們將立即處理

評 論

論壇新帖

頂部 底部


建議使用IE 6.0以上瀏覽器,800×600以上分辨率,法律顧問:上海瀛東律師事務所 張楠律師
版權所有 上海博為峰軟件技術股份有限公司 Copyright©51testing.com 2003-2020, 滬ICP備05003035號
投訴及意見反饋:webmaster@51testing.com; 業務聯系:service@51testing.com 021-64471599-8017

滬公網安備 31010102002173號

51Testing官方微信

51Testing官方微博

掃一掃 測試知識全知道

日本av