1. 程式人生 > 其它 >http請求的注意事項及元件優先順序

http請求的注意事項及元件優先順序

  在做效能測試時,不管遇到多大的麻煩,寫程式碼時不要使用beanshell

  jmeter支援的語言:java,python2.7(不支援python3+),groove,jython,js  

 http請求的注意事項:

    1. http請求協議:http可不寫,https必須寫

    2. 伺服器名稱或IP:不能有斜槓

    3. 埠號:tomcat的預設8080可不寫,其他埠號必須寫

    4. 路徑:開頭必須加斜槓,且首尾不能有空格

    5.http請求取樣器的引數:勾選編碼後,只作用於url的encoding編碼(如url含中文)

    6. 內容編碼:3處可設定

      a.http訊息頭管理器:json格式請求體一定要在http資訊頭管理裡面設定格式

        可設定編碼如 Content-Type=json; charset=uft-8;

        application/x-www-form-urlencoded:預設表單格式(當請求體不是json時,可預設不寫);

      b.內容編碼:加utf8,避免亂碼,僅作用於請求體

      c. 表單格式在引數頁籤中寫內容時,勾選 ”編碼“,引數值就會進行 urlencoded 編碼,若值中有中文特殊符號,必須勾選編碼,可能進入伺服器內部後亂碼建議都勾選編碼      

    7. response的亂碼:是伺服器返回的,因為jmeter.properties讀取的是作業系統(gbk)的語言,約1085行修改為sampleresult.default.encoding = 開發設定的編碼

      (gb2312國標編碼:支援簡體中文,不支援繁體字;big5編碼:支援繁體字,不支援簡體字;gbk國際編碼:支援中文;uft8編碼:除數字字母外均支援)

    8. 必填欄位與非必填欄位儘可能都寫上

    9. 結果樹的結果順序按先收到的響應先顯示,並非先請求先顯示

  

  自動重定向、跟隨重定向

    1. 自動重定向:也會重定向,但是不會記錄中間的過程,無法提取中間過程中需要的資料

    2. 跟隨重定向:預設勾選,請求會自動進行跳轉到新的地址上,而且會顯示重定向的過程,我們也能夠提取重定向過程中的資料

      後置處理器,可以提取出,跟隨重定向過程中的資料

    3. 若發生重定向,在檢視結果樹中會多一個摺疊的 +

       結果樹中:紅色 + ,請求方法錯誤,可能摺疊

       結果樹中:綠色 + ,請求方法正確,可能摺疊

  使用keepAlive:長連線的標誌

    現在的介面協議http版本是1.1,預設是長連線(連線建立起來,保持的時間長就是長連線,通過3次握手建立連線)

    請求頭中含有 Connection: keep-alive,保持通道長時間連線

    注意:

      長連線建立起來後,會佔用發起方1個埠,被測伺服器要使用一個連線通道,這個埠數量,就可能是效能的一個瓶頸

      (埠有限,windows可以支援理論值6.3w個埠,埠範圍1024-65534之間,但windows沒有開放這麼多埠)

      伺服器的通道(也稱連線池),也可能是效能的一個瓶頸(被測的伺服器的通道,要有資源才能建立,不可能無限大)

    解決方案:

      1.取消keepAlive勾選,只是延緩了出錯的時間

      2. 修改系統的埠相關配置(linux/windows作業系統修改)

  

  對post使用multipart / form-data:看起來是表單,但又不是表單

  與瀏覽器相容的頭:useragent

  

 jmeter的作用域與優先順序

    1. 優先順序最高:配置元件

      典型的元件:csv資料檔案設定,訊息頭管理器,請求預設值,使用者定義變數

      作用域:最先被執行

      相同優先順序,執行順序,從上往下執行

    2. 發起請求的元件:取樣器

      測試計劃:jmeter中測試計劃,是指令碼的根路基

      執行緒組:進行效能場景設計

      取樣器:線上程組下面,是真正發起請求的元件,是真正幹活的

        根據不同的協議有不同的取樣器

      執行順序:setUp執行緒組-----》執行緒組-----》tearDown執行緒組 (setUp,tearDown,可設定執行次數)

    3. 邏輯控制器:控制取樣器的邏輯,在取樣器之前執行

      邏輯控制器被執行的前提是必須有取樣器,若無取樣器,則不執行

    4. 定時控制器:作用於所有的取樣器前面,每個取樣器都會執行定時控制器

    5. 前置處理器:在取樣器執行之前被執行,在請求之前做準備

      經典處理器:使用者引數

    6. 後置處理器:對取樣器的結果進行處理,在取樣器執行之後執行

      經典處理器:json提取器,正則提取器

    7. 斷言:對結果進行判斷,在取樣器執行之後被執行(與後置處理器同級別,從上往下執行)

    8. 監聽器:

  

  重難點:

  執行順序:  有相同型別的元件,從上往下執行

    測試計劃:  

      配置元件

      邏輯控制器

      定時器

        取樣器

          後置處理

          斷言

            監聽器

        前置處理器