根據(jù) web 應用的復雜度你可以選擇創(chuàng)建兩種類型的 JMeter 測試計劃:面向點擊數(shù)的或面向場景的。
創(chuàng)建一個面向點擊數(shù)的測試計劃你需要有中值統(tǒng)計。這些統(tǒng)計要包含你的應用每秒應該處理多少個獨立請求的相關信息。這種統(tǒng)計很簡單而且適用于大多數(shù)網(wǎng)站。但是不一定適用于其它一些比較復雜的應用。比如,你不能使用一個直連從網(wǎng)上銀行獲取一份概要報告;你首先得登錄該應用然后再導航到特定的頁面。
出于這個目的,瀏覽器將存儲這些信息并甜蜜地稱之為"cookie(曲奇)",這里的 cookie(很不幸)并非一個美味的烘烤食品,而是包含有登錄會話信息的一些文本。JMeter 提供了一個用于處理壓測時產(chǎn)生的很多 cookie 的工具,名為 HTTP Cookie 管理器。
HTTP Cookie 管理器具備三個功能:
1. Cookie 管理器像一個 web 瀏覽器那樣存儲并發(fā)送 cookie。
如果你有一個 HTTP 請求,其返回結果里包含一個 cookie,那么 Cookie 管理器會自動將該 cookie 保存起來,而且以后所有的對該網(wǎng)站的請求都使用同一個 cookie。每個 JMeter 線程都有自己獨立的"cookie 保存區(qū)域"。因此,如果你在測試網(wǎng)站的時候使用了 Cookie 管理器來存儲 session 信息的話,那么每個 JMeter 線程將會擁有自己獨立的 session。**注意這些 cookie 不會顯示在 Cookie 管理器里,你可以通過察看結果樹來對其進行察看。
2. 接收到的 cookie 數(shù)據(jù)可以作為 JMeter 線程的參數(shù)進行存儲(JMeter 2.3.2 之后的版本默認不再打開這個功能)。
要將 cookie 存儲為參數(shù),定義屬性"CookieManager.save.cookies=true"。cookie 在被保存之前會在名字上加上 "COOKIE_" 前綴(避免和本地參數(shù)重復)。設置好一會名字為 TEST 的 cookie 可以用 ${COOKIE_TEST} 進行引用。如果不希望這個前綴可以對屬性 "CookieManager.name.prefix=" 進行定義。
3. 手工添加一個 cookie 到 Cookie 管理器。
注意如果你這么干了,這個 cookie 將被所有 JMeter 線程所共享。這種方式用于創(chuàng)建有很長過期日期的 cookie。
HTTP Cookie 管理器應用實踐。
對于 bug 跟蹤系統(tǒng)的測試,測試場景將會包含一個 "僅登錄一次" 操作,這個明顯僅需新用戶登錄。新建一個項目,我們把登錄請求放到 "Only Once Controller"。這意味著登錄請求將僅被執(zhí)行一次。之后,cookie 將被 HTTP Cookie 管理器所保存并用于以后的請求。
現(xiàn)在我們將執(zhí)行一次僅一個用戶的場景。之后我們會切換到察看結果樹以核實 JMeter 是否已對 cookie 做了處理。
你會看到在 POST 請求的時候 JMeter 捕捉到了 cookie。現(xiàn)在我們來驗證這個 cookie 是否會被應用于后續(xù)的請求。
注意在后續(xù)的請求中,PHPSESSID 和從服務器接收到的值一樣。
原文:Using the HTTP Cookie Manager in JMeter。