我进入了一个需要测试WebGUI的项目。与Jenkins结合使用Selenium来安排任务并运行测试。所有这些都由一台服务器(Linux)处理。
常规测试工作正常,但WebGUI测试失败,我应该让它们工作。然而,我对Jenkins的插件“Selenium Grid”(甚至是必要的)的角色感到非常困惑,JUnit在项目内部使用selenium libary进行测试,并且需要设置无头浏览器。
Jenkins插件“Selenium Grid”的角色究竟是什么?Selenium图书馆如何与无头浏览器(WebDrivers的角色?)进行通信? 我已经知道Selenium中心和节点,但不知道如何处理它。
我希望有人能帮助我清理我的困惑......
答案 0 :(得分:2)
Selenium Grid 可用于设置可扩展的自动浏览器环境。它通常用于自动GUI测试。它由一个Hub和一个或多个节点组成。
应启动 Selenium Hub 并存储生成的网址。
然后应该启动所需数量的 Selenium Nodes ,并引用Hub的Url。节点将自己注册到集线器。
然后,您可以使用Selenium Java创建RemoteWebDriver实例,可选择指定Selenium Hub的网址。这个webdriver只是一个Java API,实际的工作将在Selenium Node环境中完成。
您可以使用Java API在WebDriver实例上实现所需的操作。运行时,代码会将所有调用委托给正在运行的Selenium环境。
实际启动集线器和节点有多种方法。 Jenkins插件可以执行此操作,您可以使用Docker,本地进程或更多。我建议不要将你的设置直接绑定到Jenkins,除非你确定你永远不会切换。
Jenkins Selenium Plugin指定您应使用以下内容创建WebDriver的网址:
new RemoteWebDriver(new URL("http://jenkins.mydomain:4444/wd/hub"), capability);
jenkins.mydomain
可能是Linux服务器的IP。就在它的上方是一条线,表示它“也”接受外部节点。我不熟悉这个插件,所以我不知道这是否意味着它默认设置了一个或多个节点。
答案 1 :(得分:1)
取自以下网站。 https://wiki.jenkins.io/display/JENKINS/Selenium+Plugin
此插件以下列方式设置Selenium Grid
现在问题是你需要这个吗?
这符合项目的要求。你只需要问自己这个问题