腳本調試
關聯,在腳本中,是必應用到的一個設置方法,將腳本中,每次都會動態變化的特殊值進行關聯。一個能正確執行的腳本,都需要進行關聯(LR、jmeter)。
Jmeter關聯:
在腳本回放過程中,客戶端發出請求,通過Jmeter中的正則表達式提取器所定義的左右邊界值(也就是關聯規則),在服務器所響應的內容中查找,得到相應的值,以變量的形式替換錄制時的靜態值,從而向服務器發出正確的請求,這種動態獲得服務器響應內容的方法稱作關聯。通俗點說,就是把腳本中某些寫死的(hard-coded)數據,轉變成擷取自服務器所送的、動態的、每次都不一樣的數據。
關聯分兩種,提取單個字符串和多個字符串。
先添加正則表達式提取器,如下所示:
正則表達式提取器:
允許用戶從服務器的響應中通過使用perl的正則表達式提取值。該元素會作用在指定范圍取樣器,用正則表達式提取所需值,生成模板字符串,並將結果存儲到給定的變量名中。
提取單個字符串
假如想匹配Web頁面的如下部分:
name="csrf_token" value="a8443cafdd8ea7f9"/>
提取該值,正則表達式寫為:name="csrf_token" value="(.+?)"/>。
修改腳本如下:
可以添加一個取樣器 來查看所得的所有值
運行腳本,可以查看到如下結果:
token=6a353e4b0c9fd4e6
token_g=1
token_g0=name="csrf_token" value="6a353e4b0c9fd4e6"/>
token_g1=6a353e4b0c9fd4e6
提取多個字符串
假如想匹配Web頁面的如下部分:
name="csrf_token" value="a8443cafdd8ea7f9"/>並提取csrf_token和a8443cafdd8ea7f9。
添加正則提取器,寫入正則表達式,如下所示,正則表達式為:name="(.+?)" value="(.+?)"/>。
我們先運行一遍
我們得到了幾個值:
token=csrf_token41bbd186910d7c23
token_g=2
token_g0=name="csrf_token" value="41bbd186910d7c23"/>
token_g1=csrf_token
token_g2=41bbd186910d7c23
這就是我們要找的值
上面報錯沒關系 因為我們還沒有修改那個變量名
token_g1 _g2 是系統自己幫你創建的名字 你可以直接使用
token_g1=csrf_token
token_g2=41bbd186910d7c23
再運行一次 就可以了
正則表達式提取器詳解:
先看一張圖,就是正則提取器的面板,如下所示:
名稱: 隨意設置, 最好具有業務上的意義, 方便區分
注釋: 隨意設置, 一般不填寫
Apply to: 應用范圍, 包含4個選項。
Main sample and sub-samples: 匹配范圍包括當前父取樣器並覆蓋子取樣器。
Main sample only: 匹配范圍是當前父取樣器(一般默認選擇這個) 。
Sub-samples only: 僅匹配子取樣器。
Jmeter Variable: 支持對Jmeter變量值進行匹配。
要檢查的響應字段: 針對響應數據的不同部分進行匹配, 共七個選項。
主體: 響應數據的主體部分, 排除Header部分; Http協議返回請求的主體部分就是
Body:(一般默認選擇這個)
Body(unescaped) : 針對替換了轉義碼的Body部分。
Body as a Document: 返回內容作為一個文檔進行匹配。
信息頭: 只匹配信息頭部分的內容。
URL: 只匹配URL鏈接。
響應代碼: 匹配響應代碼, 比如狀態碼200代表成功等。
響應信息: 匹配響應信息, 比如”成功” “OK”等。
引用名稱: 即下一個請求要引用的參數名稱, 如填寫token, 則可用${token}引用它。
正則表達式: 正則表達式提取器根據該處的設置進行信息匹配
模板: 用$$引用起來, 如果在正則表達式中有多個正則表達式, 則可以是$1$, $2$等等, 表示解析到的第幾個值給token, $1$表示第一個模板, $0$表示全文匹配。
匹配數字: 用正則表達式匹配的時候, 可能出現多個值的情況, 為正數用來確定取一組值中的第幾個, 為0表示隨機取匹配值, 負數取所有值。
默認值: 如果沒有匹配到可以指定一個默認值。
正則表達式匹配注意事項:
如果不能匹配,那么顯示變量名稱,如 ${token}
正則的操作符與含義如下所示:
本文僅代表作者觀點,系作者@請多指教 發表。
歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
文章出處: http://www.cnblogs.com/yushengaqingzhijiao/p/7652639.html