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. $ : 匹配字符串的結束, 例: ^\d{2,5}$ 表示輸入的數字必須是2位(包含)到5位(包含)之間
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以外的任意字符
26. (?<word>\w+) 或(?'word'\w+) 后向引用,用於重復搜索前面某個分組已經匹配的文本,引用時就可以寫成\k<word>。實際上分組0對應整個正則表達式;組號分配過程是從左到右分配兩遍的,第一遍先掃描未命名的分組,第二遍掃描已命名的分組,所以命名分組的組號永遠大於未命名分組的組號的; 可以用(?:exp)來剝奪組號分配的參與權
27. 分組命名的幾種語法: (exp) 匹配exp表達式並將文本匹配的內容自動分配到分組里;
(?<name> exp)匹配exp表達式里的文本內容到name組名下,也可以寫成(?'name'exp); (?:exp)匹配exp表達式里內容,但是不捕獲匹配的文本也不給匹配的文本分配組號;(?=exp)匹配exp前面的位置; (?<=exp)匹配exp后面的位置 ; (?!exp)匹配后面不是exp的位置 ; (?<!exp) 匹配前面不是exp的位置; (?#comment)添加注釋,對正則表達式沒有任何影響;
28. (?=exp)與(?<=exp)為零寬斷言,其中(?=exp)為零寬度正預測先行斷言,(?<=exp)為零寬度正回顧后發斷言。(?=exp)表示自exp斷言表達式出現的位置開始匹配斷言之前的內容,如\b\w+(?=er\b) 源文件為tester,則匹配結果為:test。(?<=exp)表示自exp斷言表達式內容結束后的位置開始匹配后面的內容,如(?<=test)\w+\b 源文件為test, 則匹配結果為:er。
 
以上只列表了基本的正則表達式一半的元字符語法,后面再繼續第二部分的編寫。

 


免責聲明!

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



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