1. 程式人生 > >JMeter (十四) Cookie & Session

JMeter (十四) Cookie & Session

Jmeter 工作原理:  

  JMeter可以作為Web伺服器與瀏覽器之間的代理閘道器,以便捕獲瀏覽器的請求和Web伺服器的響應,這樣就很容易地生成效能測試指令碼,

有了效能測試指令碼,JMeter就可以通過執行緒組來模擬真實使用者對Web伺服器的訪問壓力,這與LoadRunner的

工作原理基本一致。

  原理如圖:

  

一、Cookie

  為了達到真正意義的併發,讓每個執行緒模擬一個全新的使用者,那Jmeter需要新增快取與cookies管理器,清除快取和cookies,設定如下:

  

  

  

  每次反覆清除Cookies?:選擇後,則每次執行緒組執行時,都會清除 cookie。PS:若是手動新增的cookie,則不會被清除。  

  Implementation:履行的協議。

  Cookie Policy:Cookie的管理策略。有如下幾種可選項:

    compatibility:推薦選擇此種策略。這種相容性設計要求是適應儘可能多的不同的伺服器,儘管不是完全按照標準來實現的。如果你遇到了解析 Cookies 的問題,你就可能要用到這一個規範。有太多的web站點是用CGI指令碼去實現

      的,而導致只有將所有的 Cookies 都放入 Request header 才可以正常的工作。這種情況下最好設定 http.protocol.single-cookie-header 引數為 true。

    rfc2109:是HttpClient使用的預設Cookies協議。

    rfc2965:定義了版本2並且嘗試去彌補在版本1中 Cookie 的 RFC2109 標準的缺點。規定 RFC2965 最終取代 RFC2109 傳送 RFC2965 標準 Cookies 的服務端,將會使用 Set-Cookie2 header 新增到 Set-Cookie Header 信心中,

      RFC2965 Cookies 是區分埠的。

    ignorecookies:此規格忽略所有 Cookie。被用來防止 HttpClient 接受和傳送的 Cookie。

    netscape:是最原始的 Cookies 規範,同時也是 RFC2109 的基礎。儘管如此,還是在很多重要的方面與 RFC2109 不同,可能需要特定伺服器才可以相容。

    default:預設。

 

二、Session

  新增方式:執行緒組-前置處理器 -HTTP URL 重寫修飾符,如下圖:

  

  有些tomcat的session實現不是通過cookie的,而是通過session id的,就是說,使用者登入有了session之後,tomcat就會維護一個sessonid,然後每次request的時候,要求每個http request的URL都要帶上這個session id.
在tomcat中,使用URL Re-writing mode,URL是這樣的:http://192.168.0.2:8080/easy/login.ec;jsessionid=410C3D3946535635683D662DF74A00AC,所以,這裡我們需要設定會話引數名稱為:jsessionid,Jmeter就會到URL裡面按照這個引數去把上面那個sessionid抓下來,然後每次request都帶上這個東西,需要注意,“路徑擴充套件(使用;作分隔符)”這裡還要將勾上,因為如上,tomcat的URL Re-writing中sessionid是以分號的方式加在URL上的,所以需要勾上這個選項,有些web server這個session和普通的URL parameter一樣,是以?和&這種方式加上去的,這種情況這個checkbox就不用勾了。