- jmeter實現單點登錄所有操作順序,如下圖:
一、具體實現步驟:
1 錄製腳本
可以通過Badboy或者給jmeter添加代理服務器錄製相關腳本,badboy錄製腳本需設置IE的安全設置,這裏建議使用jmeter添加代理錄製腳本;
- 設置jmeter代理服務器
- 設置瀏覽器代理,以谷歌瀏覽器爲例:設置-高級-系統-打開代理設置,之後如下圖設置
2 編寫測試腳本
2.1 爲單點登錄的邏輯控制中添加http的cookie控制器、請求頭控制器
http cookie控制器:
http 請求頭控制器,不添加任何數據:
2.2 第一次請求單點登錄接口,獲取It、url(第二次請求單點登錄的鏈接)
- http請求的具體設置:
- GET_LT的正則表達式的提取器:
GET_LT表達式:name="lt" value="(.+)"
GET_LT要獲取的body體中的部分:
- get_url的正則表達式的提取器:
get_url表達式:action="(.+?);jsessionid.*\?(.*)" method
get_url 匹配的body中的部分:
2.3 第二次單點登錄提交表單:
- http請求的具體設置,注意必須設置“自動重定向”:
- 用戶參數的設置:
- get_ticket的正則表達式的提取器:
get_ticket表達式:Location:.*ticket=(.+)
get_ticket在響應頭中要獲取的部分:
- post 請求中可以將url中的參數,加到變量中訪問:
2.4 請求業務系統:
-
http請求具體設置:
-
get_jsessionid的正則表達式的提取器:
get_jsessionid表達式:jsessionid=(.*)
get_jsessionid在請求的url中要獲取的部分:
2.5 爲業務操作的邏輯控制中添加http的cookie控制器、請求頭控制器
- 操作中踩的坑:爲防止放在一個邏輯控制中添加多個cookie有衝突,而將登陸和業務操作設置在兩個邏輯控制中
- http cookie控制器,添加登錄業務系統時獲取的 jsessionid :
- http 請求頭控制器,參照錄製腳本的請求頭填寫:
2.6 具體業務操作
- 具體業務操作的post請求:
- 變量 bz 的設置:
2.7 設置查看結果樹,查看接口運行狀態:
二、 jmeter 5.1 下載安裝:
1 jmeter下載:
- jmeter下載路徑:
2 jmeter安裝:
- jmeter 的安裝需要基於jdk環境,安裝好 jdk 環境後,即可在 jmeter 的安裝路徑下的bin目錄中雙擊打開 jmeter.bat 文件運行;
- jdk安裝:
三、 正則表達式提取器說明:
1 後置處理器:
在請求結束或者返回響應結果時發揮作用
2 正則表達式提取器:
允許用戶從服務器的響應中通過使用perl的正則表達式提取值。該元素會作用在指定範圍取樣器,用正則表達式提取所需值,生成模板字符串,並將結果存儲到給定的變量名中。
2.1 APPly to:作用範圍(返回內容的斷言範圍)
Main sample and sub-samples:作用於父節點的取樣器及對應子節點的取樣器
Main sample only:僅作用於父節點的取樣器
Sub-samples only:僅作用於子節點的取樣器
JMeter Variable:作用於jmeter變量(輸入框內可輸入jmeter的變量名稱)
2.2 要檢查的響應字段:需要檢查的響應報文的範圍
Body:主體,響應報文的主體
Body(unescaped):主體,響應的主體內容且替換了所有的html轉義符,注意html轉義符處理時不考慮上下文,因此可能有不正確的轉換,不太建議使用
Body as a Document:從不同類型的文件中提取文本,注意這個選項比較影響性能
Response Headers:響應信息頭
Request Headers:請求信息頭
URL:統一資源定位符,即Internet上用來描述信息資源的字符串
Response Code:響應狀態碼,比如200、404等
Response Message:響應信息
2.3 模板
Template ($1$ where i is capturing group number,starts at 1):
1、$1$,表示匹配第1個變量
2、也可以設置使用是的模板, $1$?$2$ (如下圖)
四、 jmeter 5.1 設置中文:
1 在界面設置:
2 在配置文件中的設置:
具體配置方法:
1、在 jmeter 安裝路徑下的 bin 目錄中找到 jmeter.properties 文件;
2、在 jmeter.properties 文件的 “#language=en” 後添加 “Language = zh_CN”;
- 路徑:
- 配置文件設置: