每次使用TestNG和Selenium时,如何在新窗口中运行不同Java类中的测试用例

时间:2018-04-04 12:16:49

标签: selenium selenium-webdriver automated-tests testng selenium-chromedriver

我在3个Java类(Selenium Script)中有15个测试方法。我想用新窗口运行每个Test类。我正在使用TestNg框架。

以下是TestNG的代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Fanfight Test" thread-count="10" parallel="methods">
    <listeners>
         <listener class-name="com.fanfight.test_case.ListenerClass">
         </listener>
     </listeners>
    <test name="User Login" parallel="false">
        <classes>
            <class name="com.fanfight.test_case.UserLogin"></class>
        </classes>
    </test>
    <test name="Contest Creation" parallel="false" >
        <classes>
            <class name="com.fanfight.test_case.ContestCreation"></class>
        </classes>
    </test>
    <test name="User Profile Test" parallel="false" >
        <classes>
            <class name="com.fanfight.test_case.UserProfileTest"></class>
        </classes>
    </test>
    <test name="Menu Bar Test" parallel="false">
        <classes>
            <class name="com.fanfight.test_case.MenuBarTest">

            </class>
        </classes>
    </test>
    <test name="Home Page Elements" parallel="false" >
        <classes>
            <class name="com.fanfight.test_case.HomePageElementTest"></class>
        </classes>
    </test>
</suite>

在不使用parallel="false"的情况下,我的脚本按字母顺序运行,因为selenium无法找到路径并且执行被卡住了。

另外请建议如何在执行期间获得异常后继续执行。

1 个答案:

答案 0 :(得分:0)

在3个测试类中的每一个中添加设置和拆除方法。安装方法应启动浏览器,拆解方法应关闭该浏览器实例。

class TestOne {
WebDriver driver;
@BeforeClass
public void setup(){
 driver = new ChromeDriver(); 
}
@Test
public void testCase1(){
}
//.... Other test methods
@AfterClass
public void tearDown(){
driver.quit();
}

您还可以创建一个只包含上面伪编码的设置和拆除方法的父类。您的所有3个测试类都应扩展此父类。它将是一种优化方法,因为驱动程序实例化和销毁现在集中在一个类中。

最后,更改testNG xml的suite标签中的parallel属性,以使它们并行运行。

<suite name="Fanfight Test" thread-count="10" parallel="classes">