您好,登錄后才能下訂單哦!
這篇文章主要講解了“jmeter正則表達式如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“jmeter正則表達式如何使用”吧!
運用Jmeter正則提取器,可以從請求的響應結果中取到需要的內容,從而實現關聯。
關聯是請求與請求之間存在數據依賴關系,需要從上一個請求獲取下一個請求需要回傳回去的數據
在查看結果樹中找到相應數據,我們需要取得actionId,buttonName
需要選中請求右鍵,添加-后置處理器-正則表達式提取器(需要在哪個請求的響應數據中拿到,就在哪個請求上添加。后置處理器的意思是請求會先執行,再從響應數據中取值)
如上圖,正則表達式的屬性就是這樣,先簡單介紹下字段什么意思,再舉例說明
名稱: 自己寫一個就好
Apple to:和要檢查的相應字段,一般都默認,主要是針對響應數據中的值去處理,如有其它需要,可以參考jmeter說明
引用名稱:自己定義的變量名稱,后續請求將要引用到的變量名,如填寫的是:actionId,后面的引用方式是${actionId}
正則表達式:提取內容的正則表達式,相當于lr中的關聯函數
【"()" 括起來的部分就是需要提取的,對于你要提的內容需要用小括號括起來】
【".":匹配除了換行符以外的任何字符】
【"*"(貪婪) 重復零次或更多 例如"aaaaaaaa" 匹配字符串中所有的a 正則: "a*" 會出到所有的字符"a"】
【"+"(懶惰) 重復一次或更多次 例如"aaaaaaaa" 匹配字符串中所有的a 正則: "a+" 會取到字符中所有的a字符, "a+"與"a*"不同在于"+"至少是一次而"*" 可以是0次】
【"?"(占有) 重復零次或一次 例如"aaaaaaaa" 匹配字符串中的a 正則 : "a?" 只會匹配一次,也就是結果只是單個字符a】
【"*?" 重復任意次,但盡可能少重復 例如 "acbacb" 正則 "a.*?b" 只會取到第一個"acb" 原本可以全部取到但加了限定符后,只會匹配盡可能少的字符 ,而"acbacb"最少字符的結果就是"acb" 】
【"+?" 重復1次或更多次,但盡可能少重復,與"*?" 一樣,只是至少要重復1次】還有分組的情況,常用的就這兩種,其它的可以再自行百度
【"(?=exp)" 匹配exp前面的位置】
【"(?<=exp)" 匹配exp后面的位置】
模板:用$$引用起來,如果在正則表達式中有多個正則表達式(多個括號括起來的),則可以是$2$,$3$等等,表示解析到的第幾個值給actionId。例如:$1$表示匹配到的第一個值
匹配數字:0代表隨機取值,-1代表所有值,此時提取結果是一個數組,其余正整數代表第幾個匹配的內容提取出來。如果匹配數字選擇的是-1,還可以通過${actionId}的方式來取第1個匹配的內容,${actionId}來取第2個匹配的內容。
缺省值:正則匹配失敗時,取的值
想要知道正則表達式是否正確,可以在請求后加入調試取樣器
右鍵-添加-取樣器-調試取樣器
響應數據:[{"actionId":"save_G_1_zdhflow.1","buttonName":"保存"},{"actionId":"G_1_zdhflow.1","buttonName":"商務技術審核"}]
沒有特殊的情況用(.*?)就可以解決所有問題,給大家舉例
我們要取得actionId的值
1、正則表達式中復制,"actionId":"save_G_1_zdhflow.1","buttonName"
2、把save_G_1_zdhflow.1替換成(.*?)就可以了
匹配數字寫成1,就是第一次匹配,因此得到的值 save_G_1_zdhflow.1
如果有修改匹配數字為2 ,就是G_1_zdhflow.1
我要匹配actionId,還要匹配buttonName怎么辦?
1、正則表達式復制 "actionId":"save_G_1_zdhflow.1","buttonName":"保存"}
2、save_G_1_zdhflow.1和保存替換成(.*?)
3、模板要改成$1$$2$,因為有兩個(.*?)而且這兩個值都要拿到
就可以將actionId_g1和actionId_g2將變量傳遞下去
注意嘍,如果我要把兩個都取出來怎么辦嘞,把匹配數字寫成-1 即可
結果如下圖
特例:
如果有響應數據只有數字,譬如返回的是個100, 就不能用.*?,因為?會取最小值,所以去掉就好,改為 (.*)
感謝各位的閱讀,以上就是“jmeter正則表達式如何使用”的內容了,經過本文的學習后,相信大家對jmeter正則表達式如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。