jmeter中雖然有很多的插件,但是有些需要安裝,有些具有一定的侷限性。函數助手是一個快捷的工具庫。下面記錄一下函數助手中一些主要的函數的使用方法。
注:不內容中所有的實例均基於3.2記錄
1、_BeanShell
表達式請求值後的值:可以是一個程序語句也可以是BeanShell腳本文件。如:“test”+“ing”
Name of variable in which to store the result (optional):存儲變量的表達式。如:name
點擊生成按鈕則會生成一串以$開頭的表達式,如圖。該表達式在請求中是可以直接調用的。
2、_char
作用:將一個數字轉化成Unicode字符。比如圖中輸入的是67、68,則對應的Unicode碼就應該是:C、D。在請求時自動轉化為C、D 作為參數進行傳遞
3、_counter
作用:可以作為一個計數器進行使用。
特點:支持多線程(類似於多用户),比如有線程1、線程2.這個計數器可以吧兩個線程進行分開記錄(此時選擇true),也可以把兩個線程合在一起就行記錄(此時選false)
可以與函數${_threadNum}合在一起使用,該函數主要是顯示當前線程ID的.
4、_CSVRead
作用:主要是從文件中讀取指定列的值,具體用法以及使用場景如下:
- » 讀取固定值
如圖表示是從testing.txt這個文件中的第0列(實際是讀取第1列,編號是從0開始),多次迭代時值是不會改變的,還是第一行第一列的值。
實際使用的較少,類似於讀取的是一個定值。
- » 讀取動態值
在表達式結尾加上next(),既:${__CSVRead(D:\test\testing.txt,next())},這樣會告知程序在下一次迭代時取下一行值
但是在實際使用的時候我們可以這樣填寫:${__CSVRead(D:\test\testing.txt,0)}${__CSVRead(D:\test\testing.txt,next())} 至於前邊為什麼要加${__CSVRead(D:\test\testing.txt,0)},具體差異可以自己試一試,你肯定有收穫的。
- » 可以使用文件別名
我們使用file作為D:\test\testing.txt文件的別名,在正常使用時我們只用使用別名就可以正常引用文件中的值了,使用格式為:${__CSVRead(*file,1)},個人不喜歡用。
5、_FileTostring
用途:一次性的讀取指定文件中的所有內容
表達式解讀:將文件testing.txt文件中的所有的內容一次性全部讀取,並且以utf-8的格式存儲在變量名test中,在其他請求中可以通過test來引用testing.txt文件中的值
6、_intSum
用來對整數的求和,支持多個整數相加,多個輸之間用英文逗號分隔開。
如:相加過程為20+20+30,將相加結果存儲在變量名test中,可以在其他請求中進行正常調用。
使用場景,當有多個變量數字需要相加後將相加的結果進行傳遞時可以使用。
7、_javaScript
此函數相對於瞭解java的人使用起來更方便,在於對java函數的瞭解
對生成的函數進行解釋:調用java中的時間函數new Date()來獲取當前時間,然後保存在變量名test中,可以被其他函數進行調用。在實際使用過程中可以換成自己所需要的函數進行調用
8、_log
日誌,如圖:輸入的字符串是testing,正常情況下返回也是testing。
參數説明:
string be logged:將會被日誌輸出的字符串
Log level or OUT orERR:用來指定日誌的輸出級別。日誌級別分別有:OUT 、ERR、DEBUG、INFO、WARN or ERROR
OUT:在控制枱打印出來(可以點擊菜單欄的警告符號按鈕查看)也會打印在標準輸出窗口。
ERR:在控制枱輸出日誌信息,同時也打印到標準輸出。
DEBUG:在控制枱打印信息,DEBUG級別以上的都將打印。
Throwable text:拋出異常信息
9、_machineIP
生成的函數解釋:通過該函數將本機的IP返回並存儲在變量test中,可以被其他請求正常所引用
使用場景:一個請求需要使用本機IP且每次本機IP為可變時的場景
10、關於隨機數函數的使用請到這裏:
11、_threadNum
用來返回顯示當前請求的線程號
12、_time
返回時間,將返回的時間存儲在test變量名中,可以被其他請求所正常所引用。
當輸入:yyyy-MM-dd HH:mm:ss 時返回的時間格式為:2018-12-31 17:57:59
當輸入:yyyyMMdd 時返回的時間格式為:20181213
當函數為:${__time(YMDHMS,)}時,返回的時間格式為:20181213-1802598
當函數為:${__time(,)}時,返回的是時間戳,精確到毫秒級別, 13位數
當函數為:${__time(/1000,)}時,返回的是時間戳,精確到秒級別, 10位數
13、關於jmeter中主要管理器的功用介紹的請點:
14、 Xpath後續
學如逆海行舟,不進則退。