Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
注销在Jmeter脚本中不起作用_Jmeter - Fatal编程技术网

注销在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

我已经使用JMeter一段时间了,我面临着一个问题,尤其是与注销相关的问题。我正在使用以下脚本-

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保存为参数,以便在不同的线程中重用它们,或者更改逻辑以便在同一线程组中执行注销