selenium grid 用于webui automation的分布式测试, 一般常规情况下,测试不建议用多线程,多线程会有很多问题,比如并发,锁机制等,什么时候线程该动什么时候停,考虑并发协同机制等等,测试没必要用自动化去实现多线程,线程阻塞等等问题。
分布式相当于多机器协同,多机器协同完成一个任务。在webui的自动化测试中,selenium grid用于做浏览器的分布式测试,你可以让多台电脑一起测试,或者当设定的当前的极限,转到另一个机器上进行运行。
selenium grid支持多浏览器,支持selenium,同时是免费和开源的。准备环境到配置。之前公司是把selenium grid与openshift集成,现在我们来本地搭建和配置一个这样的环境,直接使用开源的东西。
selenium grid的工作原理:
selenium原理是发送一段命令给cpu, cpu会把对应的指令下达给浏览器,那selenium grid是有个总线机制,selenium grid 设置一个电脑为主节点hub,其他电脑设置多个分支节点node, 根据主节点hub,去分发通信命令给多个分支节点node,当单个分支节点出问题了或者异常,可以转到另一个分支节点继续执行

hub 启动主节点,这个节点只需要启动,完后去开放ip和端口号,node 启动, 他的ip通过网络传输给hub节点,

selenium grid的配置和启动:
selenium官网下载: Selenium
下载这个selenium server grid jar file

下载之后直接启动命令: cmd 里面java -jar .\selenium-server-4.33.0.jar hub
这个作为主节点,端口号默认是4444,他还支持其他的命令有需要可以查查。

有了主节点之后,就可以去浏览器里面看看selenium grid的hub起来了么。默认的端口号是4444

hub起来之后,可以为主节点添加多个node节点,node节点需要指定hub ip进行关联
我没有那么多电脑作为node节点,所以还是本机开始配置node。java -jar .\selenium-server-4.33.0.jar node --hub http:*****:4444


node启动成功之后,selenium grid可以看到node起来了。

环境搭好之后,自动化测测试脚本可以用remote run的方式执行(driver使用RemoteWebDriver)。运行之后,selenium grid可以看到session 新建出来,点击进去可以看到case的操作流程。也可以进行remote的debug。
selenium grid 官网: Grid | Selenium
博主: haining
浙公网安备 33010602011771号