在不同的浏览器上运行junit测试

时间:2015-07-13 13:46:43

标签: java selenium-webdriver junit

我想在不同的浏览器上运行测试,使用junit,selenium,我有这个代码:

        @Test   //Test1
        public  void logInFaildTest() {
            GridTest gridTest = new GridTest();
            WebDriver webDriver = gridTest.getWebDriver();//get driver 
            LoginPage logIn = new LoginPage(webDriver, url);
            String userName = "user";
            String pass="pass";
             ......................................
            webDriver.close();
        }
        @Test   //Test2 change
        public  void logInFaildTest(WebDriver webDriver ) {
            LoginPage logIn = new LoginPage(webDriver, url);
            String userName = "user";
            String pass="pass";
             ......................................
            webDriver.close();
        }

        @Test //Test3
        public void loginSucsecc(WebDriver webDriver )
        {
            WebDriver webDriver = gridTest.getWebDriver();
            LoginPage logIn = new LoginPage(webDriver, url);
             ......................................
            webDriver.quit();
            assertEquals(expected, actual);
        }

在测试1中,我在测试方法中创建了一个webdriver实例,在测试2和3中我希望将测试驱动程序作为参数并使用特定的webdriver执行测试,如何运行可以运行每个测试用例的测试用例功能与不同的网络驱动程序(一个在Firefox上另一个在Chrome上...)。

2 个答案:

答案 0 :(得分:0)

解决方案要发送测试函数参数,必须将类设置为@RunWith(Parameterized.class)。 另一个解决方法是在每个测试方法中读取属性文件,并将测试作为属性运行。

答案 1 :(得分:0)

最好的方法是,对要运行特定浏览器的测试进行分组。

从testNg发送浏览器参数以在特定浏览器中运行。

测试类:

    @Parameters({ "browser" })
    @Test(groups="IE")
    public  void logInFaildTest(String browser) {
        GridTest gridTest = new GridTest();
        WebDriver webDriver = gridTest.getWebDriver();//get driver 
        LoginPage logIn = new LoginPage(webDriver, url);
        String userName = "user";
        String pass="pass";
         ......................................
        webDriver.close();
    }
    @Parameters({ "browser" })
    @Test(groups="IE")
    public  void logInFaildTest(String browser ) {
        LoginPage logIn = new LoginPage(webDriver, url);
        String userName = "user";
        String pass="pass";
         ......................................
        webDriver.close();
    }

    @Parameters({ "browser" })
    @Test(groups="Chrome")
    public void loginSucsecc(String browser )
    {
        WebDriver webDriver = gridTest.getWebDriver();
        LoginPage logIn = new LoginPage(webDriver, url);
         ......................................
        webDriver.quit();
        assertEquals(expected, actual);
    }

TestNG的:

<test name="Testing Parameterization">
<parameter name="browser" value="IE"/>
<parameter name="username" value="testuser"/>
<parameter name="password" value="testpassword"/>
    <groups>
        <run>
        <include name="IE"/>
        </run>  
    </groups>
    <classes>
        <class name="com.parameterization.TestParameters" />
    </classes>
</test>

<test name="Testing Parameterization">
<parameter name="browser" value="Firefox"/>
<parameter name="username" value="testuser"/>
<parameter name="password" value="testpassword"/>
    <groups>
        <run>
        <include name="chrome"/>
        </run>  
    </groups>
    <classes>
        <class name="com.parameterization.TestParameters" />
    </classes>
</test>