Selenium,最大限度地减少重复代码

时间:2011-06-08 09:59:28

标签: java selenium

我要做的硒测试基本上是基于三个主要步骤,具有不同的参数。这些参数从文本文件传递到测试。这样可以轻松完成测试,例如创建三个“X”,而无需编写代码,在一次测试中创建三次。

想象一下,我有一个测试涉及创建两个“X”和一个“Y”。 CreateX和CreateY已在单独的测试中定义。是否有一种很好的方法来调用createX和createY中包含的代码,例如,Test1?

我尝试用create作为单独的方法创建一个类,但是在所有selenium.-anything-,即每个该死的行上都有错误。如果我扩展seleneseTestCase它会消失,但似乎我的其他测试类不会从扩展seleneseTestCase的类导入。我可能正在做一些愚蠢的事,但我不妨问一下!

编辑: 好吧,例如,它将是每个测试相同的setUp方法,所以id只想写一次......而不是几百次......

public void ready() throws Exception 
{
    selenium = new DefaultSelenium("localhost", 4444, "*chrome", "https://localhost:9443/");
    selenium.start();
    selenium.setSpeed("1000");
    selenium.setTimeout("999999");
    selenium.windowMaximize();
}

那将在任何地方使用。
它在一个叫做可重用的类中。我想只是调用reuseable.ready();从测试SetUp ...但它不会让我....

2 个答案:

答案 0 :(得分:0)

我建议使用JUnit并尝试junit.org上的一些教程。您所描述的问题可以使用@Before注释修复在测试的超类中执行此设置的方法

答案 1 :(得分:0)

public class ExampleTest {
    @Before
    public void setup() {
        System.out.println("setup");
    }

    public void someSharedFunction() {
        System.out.println("shared function");
    }

    @Test
    public void test1() {
        System.out.println("test1");
        someSharedFunction();
    }

    @Test
    public void test2() {
        System.out.println("test2");
        someSharedFunction();
    }
}

@Before注释后的函数内容是每次测试之前执行的内容。 someSharedFunction()是“可重用”功能的示例。上面的代码将输出以下内容:

setup
test1
shared function
setup
test2
shared function