如何从先前的测试中检索会话并将会话变量作为URL路径的一部分注入

时间:2019-04-03 15:20:48

标签: codeception

我正在尝试使用代码接收来编写验收测试。

我进行了第一次验收测试,加载了包含产品比较的页面。

我使用$I->saveSessionSnapshot('Comparison');保存会话快照

在第二次测试中,我想从此页面继续进行比较。

在第二个测试的开始,我写道: $I->loadSessionSnapshot('Comparison');

但是,在那之后,我需要写: $I->amOnPage('/comparison/{userToken}');

用户令牌位于会话中的变量userToken中,我想在URL中注入该变量。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

你不能那样做。

Session snapshot并不意味着服务器端会话的快照,而是浏览器会话的快照,它实际上存储了所有cookie。

如果这是一项功能测试,则可以实现某种方式来基于会话ID直接访问会话存储,但是在验收测试中,您不能直接访问服务器端代码或存储。

最好修改应用程序代码以在URL中未指定会话时从会话中读取userToken,然后在测试中使用$I->amOnPage('/comparison/');