我们正在使用A / B测试,我们必须设置控制页面的cookie。我做了一个简单的测试:
cookie.feature
@javascript
Scenario: Cookie test
Given Set cookie "a" = "start" on page "/test.php"
Then wait 5000
When Set cookie "a" = "change" and go to "/test.php"
Then wait 5000
FeatureContext.php
<?php
// ...
/**
* @Given /^Set cookie "([^"]+)" = "([^"]+)" on page "([^"]+)"$/
* @When /^Set cookie "([^"]+)" = "([^"]+)" and go to "([^"]+)"$/
*/
public function setUserCookie($name, $value, $page)
{
$this->getSession()->setCookie($name, $value);
$this->visit($page);
}
/**
* @Then /^wait (\d+)$/
*/
public function iWait($msec)
{
$this->getSession()->wait($msec);
}
test.php的
<?php echo $_COOKIE['a'];
当我运行此测试时,第一页没有cookie!我在Fiddler中检查了它,HTTP标头首先不包含cookie,只包含第二个。
对策:
如何设置初始化Cookie? (无需加载第一页两次)
答案 0 :(得分:2)
始终为当前域发送Cookie。由于您尚未访问某个页面,因此该域尚未设置。目前,没有办法为貂皮饼干选择域名。
您需要在发送Cookie之前提出请求。