2

我有一个(希望是)小问题:

我正在使用 Jenkins 来构建我的项目。这很好用,但我也想用它来测试我的网络项目。

Jenkins 在 debian-Server 上运行,Windows-Machine 提供 Selenium-Server。

我安装了 Jenkins Selenium 插件 (https://wiki.jenkins-ci.org/display/JENKINS/Selenium+Plugin),因此 Jenkins 可以作为集线器运行。我的 Windows 机器注册为“Jenkins-Hub”的 Selenium-Node。詹金斯向我展示了“Selenium Grid”菜单中注册的远程控制。我认为他们已经准备好使用了。

首先是我的问题:如何使用遥控器?

我想我通过 ANT-Build.xml 告诉我的项目 TestSuits 在哪里以及结果必须放在哪里。但是我发现这种解决方案没有语法。也许这是错误的方式?

最好的问候托马斯

4

1 回答 1

4

好吧,我对 CI 和 SVN 使用 selenium web driver+ java + hudson。此外,我还有一台 IP 为 192.168.4.52 的远程机器,上面运行着 XP、JDK 和 selenium stanalone 服务器。所以设置如下:1)哈德森: 在此处输入图像描述

并在您的 BaseSeleniumTest.java 中添加如下内容:

....
 @BeforeClass
    public static void firefoxSetUp() throws MalformedURLException {

          DesiredCapabilities capability = DesiredCapabilities.firefox();


        driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability);

        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
        driver.manage().window().setSize(new Dimension(1920, 1080));
    }
    @Before
    public void homePageRefresh() throws IOException {

        driver.manage().deleteAllCookies();
        driver.get(propertyKeysLoader("login.base.url"));
    }


    @AfterClass
    public static void closeFirefox(){
        driver.quit();
    }

在字符串中的位置

    driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability);

你写你的远程机器的IP地址。

BaseSeleniumTest.java - selenium 项目中的基本类,我在其中描述所有基本方法:isElementPresent(By locator),fluentWait(By locator),isElementVisible(By locator), @Before, @BeforeClass, @AfterCLass, @After 注释。其他类仅包括涵盖不同形式的测试。它们继承了 BaseSeleniumTest 的所有方法: 在此处输入图像描述

以及如何告诉 Jenkins 有一个测试脚本 (BaseSeleniumTest.java),Jenkins 必须运行它? 问题是我使用 maven - 作为构建管理器(参见上面的 hudson 设置)和 Tortoise SVN。我创建存储库,在存储库中提交我的项目。获取链接,将其粘贴到哈德森。正如哈德森所知,maven 用于构建项目(带有干净的测试选项)。您按下 Build project - hudson make:从存储库中签出,构建项目,即运行测试并打印结果。

希望对您有所帮助。

于 2012-11-21T17:04:07.807 回答