📅  最后修改于: 2020-11-06 04:56:47             🧑  作者: Mango
什么是selenium网格?
- Selenium Grid是Selenium中的一项功能,使您可以在不同平台上的不同机器上运行测试用例。触发测试用例的控制在本地计算机上,并且在触发测试用例时,它们将由远程计算机自动执行。假设您有5个测试用例。您的本地计算机正在运行多个应用程序,因此您想在远程计算机上运行测试用例。您需要配置远程服务器,以便可以在其中执行测试用例。
- 它支持分布式测试执行。最初,您有一台本地计算机,您可以在其中编写测试用例并在同一台计算机上执行。但是,在大型组织中,您有多个测试用例,并且不可能在同一台计算机上运行所有测试用例。在大型组织中,您有多个服务器,因此本地计算机将测试用例分布在不同的计算机/服务器上。
- 您还可以在Selenium Grid上的多台计算机中并行运行测试用例。
selenium网格的体系结构
枢纽
- 集线器是接收所有测试请求并将其分发到正确节点的中心点或本地计算机。实际触发测试用例的机器称为Hub
- selenium网格中只能有一个集线器。
- 包含集线器的计算机将触发测试用例,但是您会看到浏览器在其他计算机上是自动的。
节点
节点是selenium实例,将执行您在集线器上加载的测试用例。可以在具有不同平台和浏览器的多台计算机上启动节点。
注意:在配置节点时,您正在不同的平台上运行测试用例。没有规则,如果集线器在Windows中运行测试,则所有节点必须仅在Windows中执行测试用例。节点可以具有不同的平台,例如MAC上的Safari,Ubuntu上的Firefox,WinXP上的Internet Explorer,Android。
为什么选择selenium网格?
Selenium Grid之所以有用,是因为以下原因:
- 在不同的平台上运行:您可以在不同的平台上运行测试用例,因此它是独立于平台的。例如,您有一个具有Internet Explorer 9的中心。该中心具有Internet Explorer 9,因为许多较旧的网站都支持IE9。现在,我们想在不同的平台(例如Internet Explorer)上运行测试用例。众所周知,计算机上只能安装一个版本的浏览器。您需要配置要将测试用例发送到的节点。
- 并行执行:如果设置了Selenium Grid,则可以同时运行多个案例。这样可以节省运行测试套件的时间。
如何设置selenium网格
- 下载Selenium独立服务器以运行远程Selenium Webdriver。它在一个jar文件中可用。
- 将jar文件存储在任何驱动器上。
- 打开cmd。
- 通过cmd注册集线器。输入命令java -jar selenium-server-standalone-3.8.1.jar -role hub 。此命令会将机器视为集线器。
从上面的屏幕中,我们看到集线器的地址为http://192.168.1.12:4444/grid/register。集线器所在的端口号是4444,我们需要在这些节点上注册集线器。
上面的屏幕显示集线器已创建,但未创建任何内容,因为集线器未向节点注册。现在我们需要在集线器上注册节点。
- 登录到另一台计算机并将其注册为集线器的节点。我将通过Teamviewer将我的计算机远程连接到另一台计算机。要将节点注册到集线器,只能在节点计算机上进行操作,而不能在您的计算机上进行操作,因此我将计算机连接到另一台计算机。在节点计算机上,运行命令“ java -jar selenium-server-standalone-3.141.59.jar role webdriver -hub> ipaddress> / grid / register -port 5566 ”。
- 现在,如果要在Google chrome或Firefox浏览器中运行测试用例,则需要在节点计算机上下载chrome驱动程序或geekodriver。为了实现此目的,我们需要在节点计算机上运行以下命令: “ java -Dwebdriver.chrome.driver =” D:\ chromedriver.exe“ -jar selenium-server-standalone-3.141.59.jar角色webdriver -hub> ipaddress> / grid / register-端口5566“
其中,D代表命令行中的参数。如果放置D,则命令假定给定了单个参数,并且在运行测试用例时需要注意。必须具有浏览器的exe文件。没有exe文件,我们将无法运行selenium测试用例。
注意:Selenium Standalone服务器和exe文件必须在同一路径中。