如何使用selenium重用java中的变量

时间:2015-10-13 09:36:13

标签: java selenium

我的应用程序有4个测试脚本。在每个脚本中,我使用数据驱动框架来测试多个值。因此,每次在每个脚本中,我都会初始化所有脚本中几乎常见的必要变量。是否有可能在java或selenium中重用这些变量或常量?

下面是我的代码

static String excel,sheet;

    @BeforeClass
        public void start(){
            driver.findElement(By.id(""));
        }

        @DataProvider
        public static Object[][] chartDetails() throws IOException{
            excel = Init.readConfig("xls");
            sheet = Init.readConfig("sheetName");
            data = ReadData.getData(excel, sheet);
            return data;    
        }

    @Test(dataProvider="chartDetails")
    public static void generateCharts(String standName,String termName) {
        driver.findElement(By.id("script goes here"));
       Assert.assertEquals("actual","expected");
    }

在上面的代码中,声明部分在所有模块中都是通用的。所以我想重用相同的变量。

1 个答案:

答案 0 :(得分:2)

这些测试脚本是作为Java类实现的吗?如果是这样,有两种常见的方法可以做到这一点。

创建一个超类,其中4个测试脚本中的每一个都继承自定义共享变量和共享逻辑以填充它们的超类。

public BaseTest {
    protected sharedVariable1;
    protected sharedVariable2;
    protected sharedVariable3;

    @Before
    public void sharedInit() {
        sharedVariable1 = //..
        sharedVariable2 = //..
        sharedVariable3 = //..
    }
}

public Test1 extends BaseTest {
    @Before
    public void specificInit() {
    }
}

或者,创建一个单独的类,它只保存共享变量和共享逻辑,并在4个测试脚本中的每一个中使用此类。

public Shared {
    private sharedVariable1;
    private sharedVariable2;
    private sharedVariable3;

    public Shared() {
        sharedVariable1 = //..
        sharedVariable2 = //..
        sharedVariable3 = //..
    }
}

public Test1 {
    private Shared shared;

    @Before
    public void init() {
        shared = new Shared();
    }
}