jmeter正則表示式提取器里正則表示式語法簡介
jmeter裡介面請求結束後,如果後續介面請求想要獲取本次返回結果的內容,就需要正則表示式提取器來獲取引數,當然也可以用json path extractor來提取(這個簡單一些)。不過Jmeter裡很多地方的約束條件和斷言都是需要正則表示式來匹配的,所以大家還是要學習一下正則表示式的語法,以便更好更效率的完成測試內容。下面簡單介紹一下常用的語法,這次先寫一半,下次再補另一半。正則表示式的內容還是很多的,我也只是學了其中的一些皮毛,通用的東西,後期再慢慢深入吧,而且要學以致用,學的東西一定要親自實際體驗一下才會記得牢,好了,言歸正轉。
我參考的網站是deerchao.net,作者真是偉大,文章也很幽默,也是老資格的人了,哈哈。也可以直接忽略我的文章,直接看大牛的文章學習。那這裡我就直接從字元匹配的語法來進行例項講解了,可以下載網站裡的正則表示式測試工具,直接在工具裡體驗。
下面列舉元字元語法:
1.\bhi\b : 匹配只有hi的字元,\b代表的位置,第一個\b代表單詞開始的位置,第二個\b代表單詞結束的位置
2.\bhi\b.*\bthis\b : 匹配hi的字元後,中間有任意個字元後,後面是this的字元
3. . : 表示任意字元的元字元
4. *:表示任意數量的元字元
5. \d : 表示任意一個數字
6. \d{2}: 表示任意一個數字出現兩次,相當於\d\d
7. \s : 匹配任意的空白符,包括空格,換行符,製表符(tab),中文全形空格
8. \w : 匹配字母,數字,下劃線或漢字
9. \d+ : 匹配一個或更多連續的數字
10. \b\w{2}\b : 匹配剛好有兩個字元的單詞
11. \b : 匹配單詞的開始和結束
12. ^ : 匹配字串的開始
13.
14. \ : 轉義字元,如果要查詢元字元就需要用轉義字元來完成,比如: deerchao.net 實際上是deerchao.net
15. 重複次數說明: *是重複0次或多次,+是重複1次或多次,?是重複零次或一次,{n} 是重複n次,{n,}是重複n次到多次,{n,m}是重複n次到m次
16. [] : 括號裡的字元會被匹配,比如[ab]匹配a或b字元,[,?]匹配逗號或問號
17. [a-z0-9A-Z] : 相當於匹配\w
18. | : 匹配或規則。比如: (0\d{2})[- ]?\d{8}|(0\d{3})[- ]\d{7}|0\d{2}[- ]?\d{8}|0\d{3}[- ]?\d{7} 這個就是匹配電話號碼的,如:012-56236562, 0536-1234567,(0536)-1234567,01212345678
19. ():匹配分組,255.134.123.123 或 193.168.1.1 匹配表示式為:
(([01]?\d\d?|25[0-5]|2[0-4]\d).){3}([01]?\d\d?|25[0-5]|2[0-4]\d)
20. \W : 匹配任意不是字母,數字,下劃線,漢字的字元
21. \S : 匹配任意不是空白符的字元
22. \D : 匹配任意非數字的字元
23. \B : 匹配不是單詞開頭或結尾的位置
24. [^x] : 匹配除了x以外的任意字元
25. [^aeiou] : 匹配除了aeiou以外的任意字元
以上只列表了基本的正則表示式一半的元字元語法,後面再繼續第二部分的編寫。
解釋:
(1)引用名稱:下一個請求要引用的引數名稱,如填寫activityID,則可用${activityID}引用它。
(2)正則表示式:
()括起來的部分就是要提取的。
.匹配任何字串。
+:一次或多次。
?:不要太貪婪,在找到第一個匹配項後停止。
注:(.+?)[.\n]+可以匹配換行符在內的所有字元。
(3)模板:用
引用起來,如果在正則表示式中有多個正則表示式(多個括號括起來的東東),則可以是
2
3
1$表示解析到的第1個值
(4)匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0,如果在LR中,取出的值是一個數組,還得處理一下,LR11版本用一個隨機的函式就可以不用寫大段的程式碼來處理陣列。
(5)預設值:如果引數沒有取得到值,那預設給一個值讓它取。