我正在嘗試使用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。任何想法可能造成這種情況?任何幫助是極大的讚賞。
通過啓用HTTP Cookie管理器的調試功能,您將獲得更多信息:選擇Cookie管理器>單擊jmeter主菜單中的幫助>單擊啓用調試。所以你會在jmeter.log中找到Cookie Manager的調試信息。 –