2017-08-02 65 views
1

我进入了一个需要测试WebGUI的项目。 Selenium与Jenkins一起用于安排任务和运行测试。所有这些都由一台服务器(Linux)处理。关于Selenium和WebDrivers的迷惑

定期测试工作正常,但WebGUI测试失败,我应该让他们工作。然而,我对Jenkins的插件“Selenium Grid”(它甚至是必需的)的角色感到非常困惑,JUnit在项目内部利用硒库和设置无头浏览器来测试项目。

插件“Selenium Grid”对Jenkins的作用究竟如何,Selenium libary如何与无头浏览器进行通信(WebDrivers的角色?)? 我已经知道Selenium集线器和节点,但不知道如何解决这个问题。

我希望有人可以帮我清理我的困惑......

+1

驱动程序的作用是允许您的代码通过发送请求与Web浏览器进程进行通信。 IIRC,硒网格应该模拟多个用户一次与您的网站,其中每个“用户”自己的事情。这种方式可以在多台机器上并行执行测试。 –

+0

只有一台机器应该使用。由于它是一台服务器,因此无法使用GUI(由于XVFB无法安装),因此最好对Firefox和IE进行测试。 这台机器是否应该是一个Selenium Hub,并将其作为唯一的节点重新启动?或者我可以用WebDriver在Java中使用Selenium库? – GxTruth

回答

1

从以下网站被采取。 https://wiki.jenkins.io/display/JENKINS/Selenium+Plugin

这个插件通过以下方式

  • 在主,硒电网枢纽上启动4444端口,除非在詹金斯的全局配置配置,否则设置硒电网。这是你所有的测试应该连接到的地方。
  • 对于每个从站,复制必要的二进制文件并启动Selenium RC。
  • RC和Selenium Grid Hub自动连接在一起。

现在问题是你需要这个吗?

这取决于项目的要求。您只需要自己提出这个问题

  • 您是否需要在现在或将来并行运行测试(缩短时间或进行浏览器兼容性测试)。
+0

WebGUI只有几个测试,因此可能不需要并行测试。但是,Firefox和Internet Explorer应该被支持,所以测试是必要的。 但是,只涉及一台机器,所以我没有十几台运行Selenium节点的机器使用不同的浏览器/操作系统。我可以使用不同的WebDriver(不同的模式?)来模拟这个吗? – GxTruth

+1

是的,你可以。只需删除插件并将执行绑定到某个节点即可。 –

+0

还有一个问题。 WebDrivers似乎使用无头浏览器,这需要实际的浏览器作为外部应用程序。这是事实,还是Selenium无需外部工具即可实现无头浏览器? – GxTruth

2

硒网格可以用来建立一个可伸缩的自动化浏览器环境。它经常用于自动GUI测试。它由一个集线器和一个或多个节点组成。

A Selenium Hub应该启动并且应该存储结果URL。

然后,所需数量的硒节点应该开始时引用集线器的Url。节点将自己注册到集线器。

然后,您可以使用Selenium Java创建一个RemoteWebDriver实例,可以指定Selenium Hub的URL。这个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。在它的上面是一条线,表示它“也”接受外部节点。我对插件不熟悉,所以我不知道这是否意味着它默认设置了一个或多个节点。

+0

感谢您的澄清。所以Selenium Grid(詹金斯插件)说,它将Jenkins变成了一个节点可以连接到的集线器。现在我可以使用WebDriver实现,为其提供Selenium Hub的URL +端口并使用WebDriver类来测试我的网站? 它让我困惑,因为HUB和Node是同一台机器,这看起来应该不是这样。 – GxTruth

+0

@GxTruth我已经添加了一些关于Jenkins插件的更多信息。 –