原文連結:https://www.cnblogs.com/lovesoo/p/7809260.html
目錄
1. Fiddler擴充
2. Fidder錄制腳本
3. JMeter使用Fiddler錄制腳本
4. 常見問題
5. 腳本下載下傳
今天繼續給大家帶來Fiddler工具的教程3:使用Fiddler錄制Jmter性能測試腳本。
我們知道Jmeter本身可以錄制腳本,也可以通過BadBoy,BlazeMeter等工具進行錄制,其實Fiddler也可以錄制Jmter腳本(而且有些頁面,由于安全設定等原因,使用Jmeter直接無法打開錄制時,這時就需要用到Fiddler這個專業的抓包工具了)。
運作環境為Windows10系統,JMeter版本号3.3,Fiddler版本号4.6,均為目前最新版本。
回到目錄
首先需要下載下傳2個dll擴充檔案:FiddlerExtensions.dll及FiddlerExtensions.pdb(這2個檔案是為了擴充Fiddler的導出功能,支援導出JMeter使用的.jmx格式檔案),拷貝至Fiddler\ImportExport目錄下:

下載下傳連結: https://pan.baidu.com/s/1jIL3WPo 密碼: fmcc
我們以打開百度首頁,并進行一次搜尋為例,介紹如果使用Fiddler錄制腳本。
運作Fiddler,點選右側Filters進行過濾器的配置:
1) 選擇“UseFilters”
2) 在下面的下拉框中選擇“Show only the following Hosts”,并在輸入框中填入Hosts名稱,如*.baidu.com;
3) 在Requests Headers中勾選“Hide if URL contains”,填入.css .js .gif .png .jpg .swf 用以過濾css/js/圖檔等類型請求
4) 根據需要,可在下面“Respons Status Code”中勾選“Hide non-2xx”用以過濾非2xx傳回碼(即失敗)的請求
5) 最後點選右上角Actions -> Run Filterset Now,開始運作Filer過濾
1) 打開Chrome浏覽器,錄制我們的操作:先打開百度首頁www.baidu.com,後進行一次搜尋,如搜尋lovesoo,可以看到Fiddler經過過濾之後,隻抓取了我們對Hosts: baidu.com的操作
2) 對于請求,我們可以添加相關注釋:選中Http請求 ->右鍵選中并點選Comment...
我們找到通路首頁及搜尋的Http請求,分别添加注釋如下:
3) 在Fiddler中删除非必須的Http請求,隻保留通路百度首頁及搜尋的請求:右鍵選擇Remove -> Selected Sessions
最終結果如下:
1) 在Fiddler中選擇File -> Export Sessions -> All Sessions
2) 選擇導出類型為JMeter,點選Next按鈕儲存即可
1) 運作Jmeter,打開我們剛才儲存的jmx檔案,可以看到這裡隻有2個Http請求,分别是打開百度首頁及搜尋
2) 建立線程組(點選測試計劃,右鍵選擇Threads(users) -> 線程組),并将這2個Http請求拖到線程組下
結果如下:
3) 添加檢視結果樹及概要報告Summary Report:點選線程組,右鍵選擇添加 -> 監聽器 -> 檢視結果樹/Summary Report
4) 在JMeter中啟動測試即可,結果如下:
下面介紹實際使用過程中可能遇到的問題及解決方法。
在上面的2個接口中,打開百度首頁的Http請求在檢視響應的時候出現中文亂碼的情況,這時由于JMeter預設使用的編碼格式為ISO-8859-1,非UTF-8。
有如下兩種方法可以,解決Http響應中文亂碼問題:
打開Jmeter安裝目錄/bin/jmeter.properties檔案,修改#sampleresult.default.encoding=ISO-8859-1為 sampleresult.default.encoding=utf-8 (注意去掉開頭的#注釋),重新開機JMeter即可
選擇Http請求,右鍵選擇:添加 -> 後置處理器 -> BeanShell PostProcessor,在下方的Script中填入:prev.setDataEncoding("UTF-8");
再運作一次JMeter,可以看到中文已經可以正常顯示了:
在點選檢視結構樹,檢視上述搜尋請求結果時,發現傳回結果不是我們期望的搜尋結果:
可以看到響應中有“location.replace(location.href.replace("https://","http://"));”,這個js語句意思是替換連結中的https://為http://,我們按此操作,修改搜尋請求中的請求協定:從https改為http
再運作一次JMeter,可以看到此時接口響應已經是正确的搜尋結果了:
最後,我把本次錄制及處理後的Jmeter腳本上傳到了百度網盤,供大家參考。
下載下傳連結: https://pan.baidu.com/s/1skHBDTj 密碼: 3sqt