selenium-grid是由一个hub节点和若干个代理节点组成。hub用来管理 各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行。使用selenium-grid远程执行测 试的代码与直接调用Selenium-Server是一样的[只是环境启动的方式不一样,需要同时启动一个hub和至少一个node
java -jar selenium-server-standalone-x.xx.x.jar -role hub
java -jar selenium-server-standalone-x.xx.x.jar -role node
上面是启动一个hub和一个node,若是同一台机器要启动多个node则要注意端口分配问题,可以这样来启动多个node:
java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5555
java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5556
java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5557
selenium-grid可以根据你用例中启动测试的类型来相应的把用例转发给符合匹配要求的测试代 理。例如你的用例中指定了要在Liunux上FF的3.6版本进行测试,那么selenium-grid会自动匹配注册信息为Linux、且安装了 FF3.6的代理节点,如果匹配成功则转发测试请求,如果失败则拒绝请求。使用selenium-grid的远程兼容性测试的代码同上。其调用的基本结构 图如下: