Fiddler系列教程:使用Fiddler錄製Jmeter性能測試腳本

Fiddler系列教程:使用Fiddler錄製Jmeter性能測試腳本



  

  我們知道Jmeter本身可以錄製腳本,也可以通過BadBoy,BlazeMeter等工具進行錄製,其實Fiddler也可以錄製Jmter腳本(而且有些頁面,由於安全設置等原因,使用Jmeter直接無法打開錄製時,這時就需要用到Fiddler這個專業的抓包工具了)。

  運行環境爲Windows10系統,JMeter版本號3.3,Fiddler版本號4.6,均爲當前最新版本。

  1. Fiddler擴展

  首先需要下載2個dll擴展文件:FiddlerExtensions.dll及FiddlerExtensions.pdb(這2個文件是爲了擴展Fiddler的導出功能,支持導出JMeter使用的.jmx格式文件),拷貝至Fiddler\ImportExport目錄下

    15243603_201806261122011xLIu.png

  2. Fidder錄製腳本

  我們以打開百度首頁,並進行一次搜索爲例,介紹如果使用Fiddler錄製腳本。

  2.1 Filters配置

  運行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過濾

    15243603_201806261122012pUhP.png

  2.2 腳本錄製

  1) 打開Chrome瀏覽器,錄製我們的操作:先打開百度首頁www.baidu.com,後進行一次搜索,如搜索lovesoo,可以看到Fiddler經過過濾之後,只抓取了我們對Hosts: baidu.com的操作

    15243603_201806261122013u9C1.png

  2) 對於請求,我們可以添加相關注釋:選中Http請求 ->右鍵選中並點擊Comment...

    15243603_201806261122014HiFE.png

  我們找到訪問首頁及搜索的Http請求,分別添加註釋如下:

    15243603_201806261122015Ib3R.png

  3) 在Fiddler中刪除非必須的Http請求,只保留訪問百度首頁及搜索的請求:右鍵選擇Remove -> Selected Sessions

    15243603_201806261122016ywwS.png

  最終結果如下:

   15243603_201806261122017Cml5.png

  2.3 導出腳本

  1) 在Fiddler中選擇File -> Export Sessions -> All Sessions

    15243603_201806261122018n8J8.png

  2) 選擇導出類型爲JMeter,點擊Next按鈕保存即可

    15243603_20180626112201900wE.png

  3. JMeter使用Fiddler錄製腳本

  1) 運行Jmeter,打開我們剛纔保存的jmx文件,可以看到這裏只有2個Http請求,分別是打開百度首頁及搜索

    15243603_2018062611220110nOKF.png

 2) 新建線程組(點擊測試計劃,右鍵選擇Threads(users) -> 線程組),並將這2個Http請求拖到線程組下

    15243603_2018062611220111A83Q.png

  結果如下:

   15243603_201806261122321wUOS.png

  3) 添加查看結果樹及概要報告Summary Report:點擊線程組,右鍵選擇添加 -> 監聽器 -> 查看結果樹/Summary Report

     15243603_201806261122322DMwD.png

  4) 在JMeter中啓動測試即可,結果如下:

    15243603_2018062611223238CLK.png

  4. 常見問題

  下面介紹實際使用過程中可能遇到的問題及解決方法。

   15243603_201806261122324EqnK.png

  4.1 JMeter Http響應中文亂碼

  在上面的2個接口中,打開百度首頁的Http請求在查看響應的時候出現中文亂碼的情況,這時由於JMeter默認使用的編碼格式爲ISO-8859-1,非UTF-8。

  有如下兩種方法可以,解決Http響應中文亂碼問題:

  4.1.1 修改jmeter.properties

  打開Jmeter安裝目錄/bin/jmeter.properties文件,修改#sampleresult.default.encoding=ISO-8859-1爲 sampleresult.default.encoding=utf-8 (注意去掉開頭的#註釋),重啓JMeter即可

    15243603_2018062611223255hxc.png

  4.1.2 添加BeanShell PostProcessor

  選擇Http請求,右鍵選擇:添加 -> 後置處理器 -> BeanShell PostProcessor,在下方的Script中填入:prev.setDataEncoding("UTF-8");

   15243603_201806261122326jK9C.png

  再運行一次JMeter,可以看到中文已經可以正常顯示了:

    15243603_201806261122327BT41.png

  4.2 Http接口報錯

  在點擊查看結構樹,查看上述搜索請求結果時,發現返回結果不是我們期望的搜索結果:

    15243603_201806261122328J8lz.png

  可以看到響應中有“location.replace(location.href.replace("https://","http://"));”,這個js語句意思是替換鏈接中的https://爲http://,我們按此操作,修改搜索請求中的請求協議:從https改爲http

    15243603_201806261122329xtiL.png

  再運行一次JMeter,可以看到此時接口響應已經是正確的搜索結果了.

    15243603_20180626112232103sqO.png



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章