当前位置: 首页 > 知识库问答 >
问题:

如何在codeception中使用saveSessionSnapshot()销毁会话集?

赵炯
2023-03-14

即使在注销后,会话仍保持活动状态。

这是我的登录文件。

公共函数loginAsAdmin($wpUserName,$wpPassword){

$I = $this->tester;

$I->amOnPage('/wp-admin');

if ($I->loadSessionSnapshot('login')) {
    return;
}

$I->seeElement(self::$wpUserNameField);
$I->fillfield(self::$wpUserNameField, $wpUserName);

$I->seeElement(self::$wpPasswordField);
$I->fillfield(self::$wpPasswordField, $wpPassword);

$I->seeElement(self::$wpSubmitButton);
$I->click(self::$wpSubmitButton);
$I->wait(5);

$I->saveSessionSnapshot('login'); 

}

细节

代码欺骗版本: 2.2.10 PHP版本:操作系统: OS X安装类型:作曲家安装包列表(作曲家显示)我正在使用Lucatume/wp浏览器包进行代码欺骗

这是我的套件配置:

class_name:AcceptanceTester模块:

enabled:
    - \Helper\Acceptance
    - WPWebDriver
config:
    WPWebDriver:
        host: 'hub-cloud.browserstack.com'
        port: 80
        browser: 'firefox'
        url: ''
        adminUsername: ''
        adminPassword: ''
        adminPath: '/wp-admin'
        capabilities:
           'browserstack.user': ''
           'browserstack.key': ''
          'os': 'OS X'
          'os_version': 'sierra'
          'browserstack.debug': 'true'

这很好,我不注销,但在一些测试案例中,我需要注销以验证一些断言。这就产生了问题。

这是虫子吗?我们不能在注销时销毁会话吗?

共有1个答案

田瀚
2023-03-14

您可以在代码欺骗测试中使用普通的PHP函数。如果您从测试内部调用它,这应该可以工作:

session_destroy();
 类似资料:
  • 问题内容: 我正在尝试正确注销管理员用户。这是我的功能: 基本上,一旦我对密码进行了身份验证,就将会话设置为有效(总共只有1个用户)。现在,当管理员点击注销时,我想销毁当前会话,并销毁cookie,以便他们不能只是使用浏览器中存储的会话cookie返回管理页面。但是我的代码不起作用。我点击注销,然后我可以直接导航回到管理页面。但是,如果我删除Cookie,则该功能非常完善。那么这里的cookie删

  • 问题内容: 我创建了一个基于会话的简单登录页面。 并添加了一个包含此内容的注销页面 现在,当我关闭浏览器/页面并重新打开它时,会话的值仍然存在。 我想知道如何完全销毁页面/浏览器关闭上的会话。 问题答案: 如果您使用: 关闭浏览器时,您的会话cookie将会被破坏…因此,在关闭浏览器之前,您的会话将是良好的。IE浏览器 您登录并登录,然后关闭浏览器,然后重新打开,再次进入该站点,您将不会登录。

  • 我是ejbs的新手,我想知道有状态会话bean是否会被销毁。我在servlet中注入了一个有状态会话bean。即使在30分钟后,我看到豆子是活跃的。我使用jboss eap 6.0。我相信Http会话与有状态会话bean无关。我使Http会话无效,以确保Http会话与有状态会话bean无关。那么,如果我的应用程序有许多用户,并且对于每个用户,如果我创建一个新bean,我的服务器的性能就会下降。容器

  • 有没有办法销毁特定类的所有创建的会话范围bean(并在需要时让spring重新创建)? 例如,两个用户访问应用程序,然后每个用户将有一个bean。我想毁掉这两颗豆子。 用例: 管理员正在更新菜单栏。菜单栏列表数据存储在会话范围的bean中。管理员的bean应该被销毁,菜单栏应该被更新。当然,其他人的菜单也应该更新,所以其他bean也应该被销毁。 注1:不同的用户可能会看到不同的菜单,因此bean是

  • 问题内容: 尽管此问题有多个重复项,但我找不到适合我的解决方案。需要一些帮助。 我已在配置文件中使用过。 但这并没有帮助我破坏浏览器关闭时的会话。 应用电流: 1)如果用户有效,则在身份验证页面中,使用生成新的会话标识符 2)控制转到welcome.php,在这里我使用开始新的会话 3)在注销页面中的代码是 问题答案: 最好的方法是关闭会话:如果在特定时间间隔后该会话没有响应。然后关闭。

  • 问题内容: 当我使用session_destroy()时,出现“会话对象销毁失败”的消息。 是什么导致此错误? 问题答案: 错误: 警告:session_destroy():会话对象销毁失败 这相当琐碎,没有会话 已启动, 对象已提交,因此您无法销毁它。 该运营商并不总是有效的,例如用错误报告功能。 编辑: 1)导致此错误的原因是什么? 此错误通常是由于PHP尝试删除会话文件而导致的,但找不到它。