2011-11-23 82 views
2

我正在嘗試使用JMeter 2.5.1進行負載測試。該應用程序使用PHP編寫,並使用帶有命名會話的標準基於cookie的會話管理。目前,測試計劃是一個非常簡單的2 HTTP請求和1個線程組中的1個Cookie管理器。 Cookie管理器的Cookie政策設置爲兼容性,正如教程所建議的。但是,每次請求會話都會丟失。JMeter Cookie管理器破壞cookie值

在首頁呼叫時,會話被初始化。我之前和在session_start呼叫後,將打印以下信息:

before session start: 
    session_name() = 'PHPSESSID' 
    session_id() = '' 
    $_COOKIE = array (
) 

after session start: 
    session_name() = 'sasExtSMSESSID' 
    session_id() = 'ihl8svsbl76au7h1ccn3c0ci61' 
    $_COOKIE = array (
) 

在第二頁上的呼叫,會話應該已經設置。但似乎是JMeter的cookie管理器已損壞的cookie:

before session start: 
    session_name() = 'PHPSESSID' 
    session_id() = '' 
    $_COOKIE = array (
    'sasExtSMSESSID' => 'ihl8svsbl76au7h1ccn3c0ci61, sasExtSMSESSID=ihl8svsbl76au7h1ccn3c0ci61', 
) 

after session start: 
    session_name() = 'sasExtSMSESSID' 
    session_id() = '2ro2bkd3t3liq76h7lqn603gm7' 
    $_COOKIE = array (
    'sasExtSMSESSID' => 'ihl8svsbl76au7h1ccn3c0ci61, sasExtSMSESSID=ihl8svsbl76au7h1ccn3c0ci61', 
) 

如此看來,該cookie陣列以某種方式損壞,如會話ID無效,則產生一個新的。除了調用session_name()session_start()之外,在處理cookie的應用程序中沒有什麼特別之處。使用瀏覽器訪問頁面也可以。所以我想我沒有正確配置JMeter。任何想法可能造成這種情況?任何幫助是極大的讚賞。

+0

通過啓用HTTP Cookie管理器的調試功能,您將獲得更多信息:選擇Cookie管理器>單擊jmeter主菜單中的幫助>單擊啓用調試。所以你會在jmeter.log中找到Cookie Manager的調試信息。 –

回答

0

我不確定這是否真的是一個答案,因爲我仍然不知道發生了什麼,但我想這是一個解決方案,其他人可能從中受益。

從兼容性更改cookie管理的政策默認讓我回避這個問題,因爲腐敗顯然發生了cookie變量的另一部分:

session_name() = 'sasExtSMSESSID' 
session_id() = 'gknq98q7fpecjciti3da9l6mj7' 
$_COOKIE = array (
    '$Version' => '0', 
    'sasExtSMSESSID' => 'gknq98q7fpecjciti3da9l6mj7', 
    '$Path' => '/, sasExtSMSESSID=gknq98q7fpecjciti3da9l6mj7', 
) 

到目前爲止有損壞是$路徑具有不產生負面影響。

如果有任何人向我解釋到底發生了什麼,我會很感激。

+0

嘗試爲您的HTTP Cookie管理器啓用調試:選擇Cookie管理器>單擊jmeter主菜單中的幫助>單擊啓用調試。 –

+0

通過啓用HTTP Cookie管理器的調試,您將獲得更多信息:選擇Cookie管理器>單擊jmeter主菜單中的幫助>單擊啓用調試。所以你會在jmeter.log中找到Cookie Manager的調試信息。 –