好吧,我对 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:从存储库中签出,构建项目,即运行测试并打印结果。
希望对您有所帮助。