在实践中使用Selenium 2.0 WebDriver

我想在JUnit中编写Selenium测试用例并在多个浏览器中测试我的项目,我想利用所有Selenium驱动程序实现相同接口的事实.

每个测试用例应如下所示:

package fm;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import static org.junit.Assert.*;

public class HomepageTest {

    @Test
    public void testTitle(WebDriver driver) {
        driver.get("http://localhost/");
        assertEquals("Foo",driver.getTitle());
    }

    @Test
    public void testSearchForm(WebDriver driver) {
        //...
    }

}

传递的WebDriver实现应该集中控制.我可能需要覆盖一些JUnit行为,我希望它是可能的.

我想这样做是为了避免两件事:

>代码重复:如果每个测试用例都会在@Before中初始化所有经过测试的浏览器,那么测试套件会有很多重复的代码难以维护.
>测试套件的速度:如果我集中控制订单并通过了WebDriver实现,我可以轻松地设置打开例如Firefox,在其中运行所有测试用例,关闭它并打开下一个浏览器.如果每个测试用例都能够自行打开和关闭浏览器,那么每次测试运行都会增加很多时间.

有人知道我应该怎么做?谢谢.

解决方法

在Selenium项目中,我们使用 http://code.google.com/p/selenium/source/browse/trunk/java/client/test/org/openqa/selenium/AbstractDriverTestCase.java注入我们需要的东西,然后我们的构建调用浏览器,我们在其中运行测试.

看看我们的代码库,以获得一些灵感!

相关文章

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
今天犯了个错:“接口变动,伤筋动骨,除非你确定只有你一个...
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:...
本文目录 线程与多线程 线程的运行与创建 线程的状态 1 线程...