不同用户的 Selenium 网格(使用 Behat 和 Mink)
Selenium grid for different users (with Behat and Mink)
假设聊天系统中的测试逻辑为:
- user1 在 vm1 中使用 browser1 进入主页
- user1 等到在 vm1 的 browser1 中看到 "myText"
- user2 在 vm2 中使用 browser2 写入 "myText"
(所以 user1 可以继续)
本质上是 Selenium 网格内的会话分布。
如何做到这一点?
Behat\Mink\Mink
为您提供了一种自行创建、更新、删除会话的方法。
假设你有一个 bdd 场景:
Scenario: Users can receive messages sent from their friends
Given "User 1" user sends "Hello" message to "User 2" user
Then "User 2" receives "Hello" message from "User 1" user
假设您的 ChatContext
文件中有下一个方法
/**
* @Given /^:sender user sends :message message to :receiver user$/
*/
public function userSendsAMessageToUser($sender, $message, $receiver) {
$this->initialiseSessions();
/* Now you need to set default session as firstSession and open browser and send message*/
$this->getMink()->setDefaultSessionName('firstSession');
$this->visit('your site');
}
protected function initialiseSessions() {
/* Initialise your driver with all the required attributes*/
$driver = new Selenium2Driver();
$this->firstSession = new Session($driver);
$driver = new Selenium2Driver();
$this->secondSession = new Session($driver);
$this->getMink()->registerSession('firstSession', $this->firstSession);
$this->getMink()->registerSession('secondSession', $this->secondSession);
}
然后你需要实现检查消息的方法,为此你需要切换会话$this->getMink()->setDefaultSessionName('secondSession');
假设聊天系统中的测试逻辑为:
- user1 在 vm1 中使用 browser1 进入主页
- user1 等到在 vm1 的 browser1 中看到 "myText"
- user2 在 vm2 中使用 browser2 写入 "myText" (所以 user1 可以继续)
本质上是 Selenium 网格内的会话分布。 如何做到这一点?
Behat\Mink\Mink
为您提供了一种自行创建、更新、删除会话的方法。
假设你有一个 bdd 场景:
Scenario: Users can receive messages sent from their friends
Given "User 1" user sends "Hello" message to "User 2" user
Then "User 2" receives "Hello" message from "User 1" user
假设您的 ChatContext
文件中有下一个方法
/**
* @Given /^:sender user sends :message message to :receiver user$/
*/
public function userSendsAMessageToUser($sender, $message, $receiver) {
$this->initialiseSessions();
/* Now you need to set default session as firstSession and open browser and send message*/
$this->getMink()->setDefaultSessionName('firstSession');
$this->visit('your site');
}
protected function initialiseSessions() {
/* Initialise your driver with all the required attributes*/
$driver = new Selenium2Driver();
$this->firstSession = new Session($driver);
$driver = new Selenium2Driver();
$this->secondSession = new Session($driver);
$this->getMink()->registerSession('firstSession', $this->firstSession);
$this->getMink()->registerSession('secondSession', $this->secondSession);
}
然后你需要实现检查消息的方法,为此你需要切换会话$this->getMink()->setDefaultSessionName('secondSession');