1. 程式人生 > >jmete 學習 --函數助手

jmete 學習 --函數助手

fun jmeter 文件內容 表達 nbsp 表示 正則 lan 個數

為了在性能過程中真實的模擬用戶請求,有時我們需要借助函數助手來進行參數化,本篇我就列出一些常用的 函數助手。

函數調用都是以 ${__function()} 這種形式開始的。

1.__BeanShell

技術分享

  名稱:無實際含義。

  值:BeanShell語句或者BeanShell文件地址。

  Detail:無實際含義。

  生成:生產Sample 可以調用的表達式。

  在java 請求中設置Label 為 ${__BeanShell("shanghai"+"road")},運行,察看結果樹,調用結果如下:

技術分享

2.__char

  功能是把一組數字轉化成Unicode字符,看演示結果(值是 65,66)

技術分享

技術分享

技術分享

3.__counter

  可以作為一個計數器使用,支持多線程。看下面例子。

  我們借助 ${__threadNum} 來顯示當前運行線程的ID.設置兩個線程,叠代3次。

技術分享

技術分享

技術分享 如果__counter 引用為 false,賊結果為技術分享

4.__CSVRead

  該函數可以從文件中讀取指定列的值,有2個主要功能

  1).讀取固定值

  從 a.txt 文檔中讀取第一列的值(有幾行可以選擇幾個線程)

技術分享技術分享

  2).讀取動態值

    如果想每次叠代時取值不一樣,可以用到類似 ${__CSVRead(D:\a.txt,next()) 這樣的表達式,next()會告知程序下次叠代去下一行數據,前面一個表達式表示第幾列。

技術分享技術分享

5.__escapeHtml

  把字符串轉換成HTML格式的字符

技術分享技術分享

6.__eval

  用來返回一個表達式的值,也就是可以用此函數數表達式來嵌套引用表達式。例子

name = Smith
table = birthdays
column = age
SQL = SELECT ${column} from ${table} where name = ‘${name}‘

  那麽久可以用 ${__eval(${SQL})} 來引用SQL 變量,得到的結果就是 select age from birthdays where name = ‘Smith‘

7. __evalVar

  用來返回表達式的結果,並把結果存入一個變量,供Sampler引用。

  1) 在用戶定義變量中 定義 username 變量,

  2) 通過__eval 函數來定義

  3) 在java 請求中通過__eval 函數來調用他

技術分享 技術分享 技術分享

  最終結果是

技術分享

8.__FileToString

  用來讀取文件,它可以一次性讀取文件內容,然後保存到變量;此變量可由其他Sampler 引用。

  見示例

技術分享

  在java請求中的 Label 調用該變量,結果為

技術分享

9.__intSum

  用來對整數求和,支持多個整數累加,多個數之間用逗號分隔。見實例,求,1~5之後,然後java 請求中labael 調用

技術分享 技術分享

10.__longSum

  與__intSum 類同,只不過把整數變成了長整型。

11.__javaScript

  此函數可以用來返回 JavaScript 腳本執行的結果。也可以用來調用JavaScript中的函數庫,見實例

技術分享 技術分享

12.__log

  日誌方法,返回輸入的字符串信息。

技術分享

    String to be logged(and returned):將會被日誌輸出的字符串

    Log level (default INFO) or OUT or Err:指定輸出日誌級別,以下是日誌級別:

      OUT:在控制臺打印出來,另外也會打印到標準輸出窗口。

      ERR:在控制臺輸出日誌信息,同事也打印到標準輸出。類似JAVA 的 System.err。

      DEBUG:在控制臺輸出日誌信息,DEBUG 級別以上的都能打印。

      INFO:類似DEBUG,打印INFO 和ERROR 級別的日誌。

      WARN:打印INFO 和ERROR ,WARN級別的日誌。

      ERROR:僅打印ERROR 日誌。

    Throwable text:拋出的異常信息。

    Additional comment:附加的備註信息。

13.__machineIP

   返回本機IP,簡單,不作實例。

14.__machineName

   返回本機的機器名,簡單,不作實例。

15.__P

   獲取屬性的函數,可以獲取命令行中定義的屬性,默認值為1.比如我們在命令窗口打開JMETER,且設置 group1.threads = 7,那麽我們可以通過__P 函數來獲取

技術分享

16.__Random

  隨機函數,用此函數來生成一個一定範圍內的隨機數並保存到指定變量,可供其他Sampler使用。

技術分享 技術分享

17.__RandomString

  隨機字符串函數,用此函數我已生成指定長度的隨機字符串並保存到指定變量,可供其他Sampler使用。

技術分享 技術分享

18.__regexFunction

  正則表達式提取函數,此函數用來正則匹配上一個Sampler的返回值,關於正則表達式,以後會專門寫一篇來解釋。

19.__samplerName

  獲取當前Sampler的名稱,不做演示了。

20.__setPROPERTY

  此函數用來動態設置JMeter 的屬性。

技術分享

    Return Original Value of property:是否返回函數結果,默認為否,如果為Ture ,則 java 請求中lable 調用此函數該值就為Debug了。

21.__split

  該函數用來拆分字符串。

技術分享

  函數名稱:拆分的字符串引用的變量名。拆分後的字符存入變量中,此變量類似一個字符串數組。如上面例子的para。用 para_1 來表示 拆分後的第一個字符,如果沒有匹配到則用?表示。

22.__StringFromFile

  該函數從文件中讀取內容,一行一行的讀,類似於CSV Data Set Config 元件, 效率不高,不推薦,故不做演示。

23.__TestPlanName

  返回測試計劃名稱

24.__threadNum

  返回當前線程號

25.__time

  返回當前時間,可以指定格式。

  年:yyyy

  月:MM (註意是大寫)

  日:dd

  時:hh

  分:mm

  秒:ss

技術分享 技術分享

26.__unescape

  返轉escape字符,如 \r\n 轉成 CRLF.

27.__unescapeHtml

  返轉URL 鏈接中的Unicode編碼字符,如   轉成空格。

28.__UUID

  生成一個唯一的字符串。

jmete 學習 --函數助手