我正在尝试使用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的调试信息。 –