testcafe cookies会话cookies

testcafe cookies会话cookies,cookies,automated-tests,session-cookies,e2e-testing,testcafe,Cookies,Automated Tests,Session Cookies,E2e Testing,Testcafe,我正在使用testcafe测试我们需要验证的站点。事情进展顺利,但我在测试期间检查页面时发现cookies设置不正确。所有cookie名称的格式如下: w|ErNwuuhVT|KEYCLOAK_SESSION|xxx.abc.def|%2Fauth%2Frealms%2Fdomain%2F|jxd35gq0|jxchpvfp 这不是我们网站在浏览网站时使用的正确格式。为什么用管道分隔?testcafe以这种格式保存cookie有什么原因吗?而且,cookies的名称与预期的不匹配。虽然我们可以

我正在使用testcafe测试我们需要验证的站点。事情进展顺利,但我在测试期间检查页面时发现cookies设置不正确。所有cookie名称的格式如下:

w|ErNwuuhVT|KEYCLOAK_SESSION|xxx.abc.def|%2Fauth%2Frealms%2Fdomain%2F|jxd35gq0|jxchpvfp
这不是我们网站在浏览网站时使用的正确格式。为什么用管道分隔?testcafe以这种格式保存cookie有什么原因吗?而且,cookies的名称与预期的不匹配。虽然我们可以登录它,但会导致其他一些资源无法正确加载。
另一个问题是cookie应该保存在“.abc.def”域下,但是testcafe将cookie保存在完整域中,这类似于“xxx.abc.def”,这也会导致问题。为什么testcafe会这样做?它是hammerhead代理的b/c吗?

TestCafe在内部使用一个。 此代理被迫手动处理Cookie,因为测试执行期间被测试网站的URL发生了更改。
如果应用cookie的过程中出现问题,请向报告问题。

但在运行testcafe时,cookie的名称和域是否会发生更改?如果我有一个cookie“abc=def”并保存到域xxxyy.com,那么当我在testcafe中运行时检查页面时,我是否应该期望显示相同的cookie?是的,这是预期的。TestCafe处理所有cookie,因此它们以修改后的格式显示。正如您已经提到的,是result
testcafe-hammerhead
代理机制修改了我们内部服务的cookie。此外,每个测试都使用干净的cookie运行,因此每个测试都独立于另一个测试的状态。在一般情况下,您不需要检查cookies,如果您有一些特定问题,请报告。因此,为了更好地理解这一点。如果我去abcxyz.com这样的网站,它会设置一个cookie。hammerhead将获取cookie并将其改写为自己的格式。当我四处浏览时,它会将重新格式化的cookie格式化为abcxyz.com所期望的格式并发送回?这是一个很好的描述吗?不是。cookie处理算法太复杂了。它包括两个独立的部分:客户端cookie(通过
document.cookie=
更改)和服务器cookie(通过
Set cookie
头更改)。其主要思想是在服务器端存储最终的cookie状态(而不是以浏览器的方式在客户端存储cookie状态)。该机制非常复杂,解决该问题的最佳方法是使用完整的示例在TestCafe存储库中创建一个问题。