针对不同用户的Selenium网格(使用Behat和Mink)

时间:2018-04-07 09:56:36

标签: selenium-grid behat

假设聊天系统中有这个测试逻辑:

  • user1在vm1
  • 中使用browser1在主页中
  • user1等到看到" myText"在浏览器1中的vm1
  • user2写" myText"在vm2中使用browser2 (所以user1可以程序)

本质上是Selenium网格内的会话分发。 怎么做?

1 个答案:

答案 0 :(得分:1)

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');