本文概述
- 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, 我们需要在这些节点上注册集线器。
- 打开链接, 即服务器所在的http://192.168.1.12:4444/grid/console。集线器仅是服务器。
上面的屏幕显示集线器已创建, 但未创建任何内容, 因为集线器未在节点上注册。现在我们需要在集线器上注册节点。
- 登录到另一台计算机并将其注册为集线器的节点。我将通过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 -port 5566″
其中, D代表命令行中的参数。如果放置D, 则命令假定给定了单个参数, 并且在运行测试用例时需要注意。必须具有浏览器的exe文件。没有exe文件, 我们将无法运行Selenium测试用例。