注销在Jmeter脚本中不起作用
我已经使用JMeter一段时间了,我面临着一个问题,尤其是与注销相关的问题。我正在使用以下脚本-注销在Jmeter脚本中不起作用,jmeter,Jmeter,我已经使用JMeter一段时间了,我面临着一个问题,尤其是与注销相关的问题。我正在使用以下脚本- TestPlan HTTP Cookie Manager HTTP Request Defaults ThreadGroup - (scheduled for half and hour) Once Only Controller HTTP Request - login Loop Controller - (forev
TestPlan
HTTP Cookie Manager
HTTP Request Defaults
ThreadGroup - (scheduled for half and hour)
Once Only Controller
HTTP Request - login
Loop Controller - (forever)
HTTP Request 1
HTTP Request 2
....
HTTP Request 13
tearDown Thread Group
HTTP Request - logout
但这里的问题是,即使注销响应看起来不错,用于JMeter脚本登录的用户实际上仍然没有注销。(我可以作为管理员进行监控)很可能您的“注销”链接只是通过JavaScript清除用户的cookie。根据项目主页:
JMeter不是浏览器。就web服务和远程服务而言,JMeter看起来像一个浏览器(或者更确切地说,是多个浏览器);但是JMeter并不执行浏览器支持的所有操作。特别是,JMeter不执行HTML页面中的Javascript。它也不像浏览器那样呈现HTML页面(可以以HTML等形式查看响应,但计时不包括在任何示例中,一次只能查看一个线程中的一个示例)
因此,可以通过清除cookies在JMeter中模拟注销事件-请参阅
注意:HTTP Cookie管理器(以及HTTP缓存管理器等)中的迭代是在级别上定义和递增的,由循环控制器触发的循环,而控制器等不被视为“迭代”
也可以通过编程方式清除cookies,即从如何验证注销请求的成功?您使用过响应断言吗?或者您正在手动读取树视图模式下的响应?您需要首先分析成功注销请求的预期响应,然后使用响应断言。所以jmeter会在不满足该断言的情况下给您错误提示。我从您发布的计划中怀疑,由于您的注销与其他操作位于不同的线程组中,因此它不会与登录具有相同的cookie,因此它不会做任何事。您需要将cookie保存为参数,以便在不同的线程中重用它们,或者更改逻辑以便在同一线程组中执行注销