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



我在3个Java类(Selenium脚本(中有15种测试方法。我想用新窗口运行每个测试类。我正在使用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无法找到路径和执行。

另外,请建议如何在执行过程中获得例外情况,即使执行仍在继续。

在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();
}

您还可以创建一个只有设置和拆除方法的父类,上面编码的伪编码。您的三个测试课程均应扩展此父级。这将是一种优化的方法,因为驱动程序的实例化和破坏现在集中在单个类中。

最后,更改testng XML的套件标签中的并行属性,以使其并行运行。

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

相关内容

  • 没有找到相关文章

最新更新