如何在单个浏览器中运行所有黄瓜功能自动化测试用例

时间:2014-02-27 11:16:49

标签: selenium-webdriver cucumber-jvm

我是黄瓜测试以及硒测试的新手。请帮我在单个浏览器中运行所有黄瓜测试用例。至于现在我在每个黄瓜step_def中为特征文件创建新的WebDriver对象。

2 个答案:

答案 0 :(得分:2)

解决方法是,在step_def中使用/传递相同的Web Driver对象。从我的问题我假设,你有多个Step Def文件,如果故事很小并且相关,则将它们全部放在一个step_def文件中,并且只有一个Web驱动程序对象。如果不是这种情况,请使用在配置加载器中全局声明的预定义Driver对象调用每个step_def。

答案 1 :(得分:1)

使用一个浏览器运行所有测试用例使用单例设计模式,即使用私有构造函数创建类,并使用私有访问说明符定义类实例变量。在该类中创建一个方法并检查该类是否为null,如果是是否为null而不是创建一个新的类实例并将该实例返回给调用方法。例如,我发布了我的代码。

class OpenBrowserHelp {
private WebDriver driver;
private static OpenBrowserHelp browserHelp;

private OpenBrowserHelp() {
    this.driver = new FirefoxDriver()
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    driver.manage().window().maximize();
}

public static OpenBrowserHelp getOpenBrowserHelp() {
    if (null == browserHelp) {
        browserHelp = new OpenBrowserHelp();
    }
    return browserHelp;
}

WebDriver getDriver() {
    return driver
}

void setDriver(WebDriver driver) {
    this.driver = driver
}

public void printSingleton() {
    System.out.println("Inside print Singleton");
}

现在,您需要创建浏览器实例,而不是使用

 WebDriver driver = OpenBrowserHelp.getOpenBrowserHelp().getDriver();