随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
Selenium Grid工作原理
Grid是用于设计帮助我们进行分布式测试的工具,其整个结构由一个hub主节点和若干个node代理节点组成。hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调整,然后把请求的命令在转发给代理节点来执行。使用Grid远程执行测试代码与直接调用Selenium Server是一样的,只是环境启动的方式不一样,需要同时启动一个hub和至少一个node。
java -jar selenium-server-standalone-3.141.59.jar -role hub
java -jar selenium-server-standalone-3.141.59.jar -role node
上面的代码分别启动了一个hub和一个node,hub默认端口号为4444,node默认端口号为5555.若是同一个主机上启动多个node,则需要注意指定端口号,可以通过下面的方式来启动多个node节点。
java -jar selenium-server-standalone-3.141.59.jar -role node -port 5555
java -jar selenium-server-standalone-3.141.59.jar -role node -port 5556
java -jar selenium-server-standalone-3.141.59.jar -role node -port 5557
当你的测试用例需要验证的环境比较多时,可以并行地执行这些用例进而缩短测试总耗时。并行的能力需要借助编程语言得多线程技术,多线程技术我会在以后的文章中贴出。Grid可以根据用例中指定的平台配置信息把用例转发给符合匹配要求的测试代理。例如,你的用例中制定了要在Linux上用Firefox版本进行测试,那么Grid会自动匹配注册信息为Linux且安装了Firefox的代理节点,如果匹配成功,则转发测试请求,如果匹配失败则拒绝请求。
下面在一台主机上启动一个hub主节点和两个node分界点,如下图:
通过流量拿起访问Grid的控制台:http://127.0.0.1:4444/grid/console。
登入后如下图所示: