Selenium Grid + JUnit + Jenkins - 如何

时间:2014-02-20 14:11:09

标签: selenium jenkins grid

我有一个配置和测试编写,当我通过Selenium网格传递时它们不起作用(但没有工作)。

  1. Selenium Tests / JUnit / Eclipse
  2. 克隆存储库并运行测试的一个Jenkins工作
  3. Jenkins上安装的Selenium Grid插件,以及连接到集线器的所有节点(带有FF的Linux上的Jenkins奴隶)。
  4. 问题1 :我的测试套件的Jenkins作业从奴隶开始。它是否正确?我应该在主人身上开始吗(我试过并得到了其他问题,但至少我会专注于真正的问题,如果我知道什么是正确的方法)。

    问题2 。我在@Before测试中初始化了驱动程序。它是否正确? driver = new RemoteWebDriver(new URL(“http:// ......”),DesiredCapabilities.firefox()); 这是我在不使用网格时初始化firefox驱动程序的地方,它正在工作。

    问题3 。我如何告诉Selenium网格为我提供一些日志。平心而论,我不知道我的测试是否试图访问集线器。

    最后一个问题是关于我在使用网格时得到的错误(同样,我的所有测试都没有正常工作)。 org.openqa.selenium.WebDriverException:指定的firefox二进制位置不存在或不是真实文件:/ usr / bin / firefox

    对于我用Google搜索并尝试过的最后一个错误,有很多解决方案,没有任何运气。作为初学者,我现在怀疑我的配置。

    感谢您的时间。

1 个答案:

答案 0 :(得分:1)

数目:

  

问题1

在奴隶上运行它不是不正确的。这完全可以接受。

  

问题2

您可以在任何地方初始化驱动程序。您可以将它放在@Before,构造函数甚至方法中。这完全取决于哪种方式最适合你。

  

问题3

我不确定你是否可以使用firefox执行此操作,但使用chromedriver可以传递这样的参数:--verbose --log-path=/tmp/chromedriver.log \$*

  

最后一个问题

我首先会问你一个问题,我会回答这个问题。您的网格和节点是不同于您的jenkins服务器的服务器?如果是这样,那么这很可能意味着您需要确保您的firefox可执行文件位于/usr/bin/firefox下。如果是,请确保它们是可执行的!例如:sudo chmod u+x /usr/bin/firefox

此外,您的RemoteWebDriver初始化已被屏蔽,因此我无法看到,但请确保您拥有网格的网址,其中/wd/hub已结束在末尾。例如:http://selenium-grid:4444/wd/hub