使用Jmeter測試web應用時,通常有兩種測試計劃:面向請求數的測試、面向場景的測試
模擬用戶操作屬於面向場景的測試。
準備工作
1.1 建立線程組和HTTP請求
在測試計劃中新建線程組,線程組中添加一個HTTP請求,並配置。
1.2 錄製控制器
錄製控制器用來自動錄製腳本:線程組 -> 添加 -> 邏輯控制器 -> 錄製控制器
1.3 代理服務器
需要添加一個代理服務器來配合錄製:工作臺 -> 添加 -> 非測試元件 -> HTTP代理服務器
1.4 配置HTTP代理服務器
1.4.1 保證代理服務器的端口不衝突
1.4.2 將Test Plan Content中的目標控制器改爲“測試計劃->線程組->錄製控制器”(即前面剛剛添加的錄製控制器)。分組改爲“每個分組放入一個新的控制器”。
1.4.3 Request Filtering中可以對模擬的請求進行過濾或包含的配置(通過正則表達式),按需配置。
開始錄製腳本
首先,在Jmeter裏面啓動配置好的代理服務器。然後, 把上面的代理服務器配到瀏覽器設置裏面。 打開要目標頁面,進行操作。
操作完成後,手動停止代理服務器,錄製完成。
錄製完成後,可以刪掉不相關的請求,也可以實現在代理服務器配置裏面配置過濾。只要再次運行,就可以跑之前錄製的腳本。
這樣看來,錄製腳本的思想就是通過代理服務器監聽用戶的操作產生的一系列網絡請求,並將這些請求全部記下,這樣後面的自動模擬測試其實就是重複發送這一系列請求。
模擬登錄:Cookie管理器
前面寫的操作只是單一的登陸操作,即使錄製了登陸後的後續操作,也得不到想要的效果。因爲沒有保存cookie,再跑腳本的時候服務器會認爲尚未登陸而拒絕請求,這樣前面錄製的操作就沒用了。
所以,需要添加一個Cookie管理器。
3.1 添加Cookie管理器
點擊線程組 -> 添加 -> 配置元件 -> HTTP Cookie管理器。
添加管理器後,保持默認配置即可,Cookie管理器會在錄製腳本的時候自動保存cookie,並且每個線程都又自己的cookie空間。
3.2 【重要】 到jmeter安裝目錄的bin/目錄下,修改jmeter.properties文件的CookieManager.save.cookies值爲true。
CookieManager.save.cookies=true