一、基本注解及其作用范围
1、testNG的基本注解标签:
@Test:用来把方法标记为测试的一部分
@BeforeSuite:对于套件测试,此套件中的所有测试运行之前运行,只运行一次;一个testng.xml文件中只能有一个suite,要想运行多个suite,需要使用<suite-files>标签,后面介绍
@AfterSuite:对于套件测试,此套件中的所有测试运行之后运行,只运行一次;
@BeforeTest:对于套件测试,在testng.xml中所有<test>标签内的所有类的测试方法执行之前运行
@AfterTest:所有<test>内测试方法执行之后运行
@BeforeClass:在调用当前类之前运行
@AfterClass:在调用当前类之后运行
@BeforeMethod:在每个测试方法执行之前都会运行
@AfterMethod:在每个测试方法执行之后都会运行
@BeforeGroups:在调用属于该组的第一个测试方法之前运行
@AfterGroups:在调用属于该组的最后一个测试方法执行之后运行
testng运行时,顺序是这样的:
@BeforeSuite->@BeforeTest->@BeforeClass->{@BeforeMethod->@Test->@AfterMethod}->@AfterClass->@AfterTest->@AfterSuite,其中{}内的有多少个@Test,就循环执行多少次。
2、注解范围:
除了@BeforeSuite、@BeforeTest、@AfterTest、@AfterSuite可以对不同的测试类生效外,其他的注解的作用范围只在本类中生效。
testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="none">
<suite name="Suite1" verbose="1" >
<test name="Test">
<groups>
<run>
<include name="functiontest" />
<exclude name="brokenTests" />
</run>
</groups>
<classes>
<class name="TestNGLearn1"/>
<methods>
<include name="TestNgLearn" />
</methods>
</classes>
</test>
<test>
<classes>
<class name="com.janson.TestNG1"/>
<class name="com.janson.TestNG2"/>
</classes>
</test>
</suite>
二、多suite配置
testng的配置文件,一个.xml里面只能有一个suite,那么如果想要设置多个suite怎么弄呢?这个时候需要用到testng的标签<suite-files>。
UITest.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="UI test">
<test name="baidu search test">
<classes>
<class name="testcase.CheckLink"></class>
</classes>
</test>
</suite>
APITest.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="APITest">
<test name="API">
<classes>
<class name="APITestcase.CheckWeather"></class>
</classes>
</test>
</suite>
最后在testng.xml中把APITest.xml和UITest.xml整合起来即可实现多suite,如下图所示:
<code="java"]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="systemTest">
<suite-files>
<suite-file path="APITest.xml"></suite-file>
<suite-file path="UITest.xml"></suite-file>
</suite-files>
</suite>
</code>
分享到:
相关推荐
它还支持使用各种类型的断言来验证测试结果,以及使用TestNG XML Suite文件进行分布式测试,使得在多台机器上并行运行测试成为可能。 总之,TestNG是一款功能强大的测试框架,提供了丰富的选项来满足不同层次的测试...
2. **测试(Test)**:每个测试由 `<test>` 标签定义,它可包含一个或多个 TestNG 类。通过设置 `name` 属性,可以为测试命名,便于管理和识别。 3. **TestNG 类**:TestNG 类是包含至少一个 TestNG 注解的 Java 类...
- `<suite>`元素可以包含多个`<test>`元素,从而实现对不同测试类的组合。 - **套件测试Demo**: - 创建Demo目录结构。 - 编写测试类,如`TestConfig`、`TestDatabase`和`TestPerson`。 - 创建`testng_suite.xml...
- **测试**(Test):用`<test>`标签定义,包含一个或多个TestNG类。 - **TestNG类**:用`<class>`标签定义,每个类至少包含一个测试方法。 - **测试方法**:在源代码中用`@Test`注解的方法。 - **配置方法**:使用`...
TestNG的测试用例组织结构通常是:一个TestSuite由一个或者多个Test组成,一个Test由一个或者多个测试Class组成,一个测试Class由一个或者多个测试方法组成。testing.xml的配置层级结构通常如下:<suite><test>...
在XML文件中定义参数时,TestNG会首先在包含当前类的test标签中查找,如果没有找到,则会向上搜索suite标签。非基本类型的数据可以通过@DataProvider方法返回二维数组或自定义数据结构进行传递。 总的来说,TestNG...
2. **测试套件和测试组**:通过测试套件(Test Suite)可以组织多个测试类和测试方法,测试组(Test Group)则允许将相关的测试用例分组,方便进行分组执行或跳过。 3. **注解驱动**:TestNG使用丰富的注解(如@Test...
TestNg是Java编程环境中的一款强大的自动化测试框架,与JUnit相比,它提供了更多高级特性,如并行测试、数据驱动测试、灵活的测试配置以及详细的测试报告。本项目“testNg-maven-starter”是一个入门级的示例,旨在...
这可以通过TestNG的`<suite>`标签在`testng.xml`文件中定义。 通过这个框架,我们可以有效地对登录功能进行自动化测试,确保其在各种情况下都能正常工作。同时,由于框架的可扩展性,该方法也可以应用于其他类型的...
在HTML标签方面,TestNG允许我们通过XML配置文件来定义测试套件和测试用例,这样可以方便地组织和控制测试的执行流程。HTML与TestNG的关系主要体现在测试结果的展示上,TestNG生成的测试报告通常是以HTML格式呈现,...
TestNG还支持使用XML配置文件来组织测试用例,可以定义测试套件(suite)、测试(test)、类(class)和方法(method),并设置执行策略。此外,它还有强大的异常管理和报告生成功能,能够提供详细的测试结果,包括...
4. **配置 TestNG**:在你的 TestNG 配置文件(testng.xml)中,你需要指定你的自定义报告器。通过 `<listeners>` 标签,你可以添加你的报告类。 5. **整合到项目**:最后,将你的自定义报告器类打包成 JAR 文件,...
1. **测试套件(Suite)**:TestNG允许定义测试套件,这是由多个测试类或测试配置文件组成的集合。在测试套件中,你可以定义测试的执行顺序,甚至可以并行运行不同的测试。 2. **测试类和测试方法**:测试类包含一...
4. 配置TestNG配置文件(testng.xml),在suite标签内添加`<!— ReportNG配置 —><listeners><listener class-name="org.uncommons.reportng....
- 可以创建测试套件(test suite),在其中包含多个测试类,每个类对应一组相关的测试用例。 - 使用TestNG的依赖管理,可以确保某些测试方法在其他方法之后运行,这对于设置和清理工作尤其有用。 - TestNG还提供...
描述中的“NULL”表示没有具体的细节信息,所以我们需要参考博文链接来获取更多内容。由于无法直接访问外部链接,我将基于一般的实践和理解来解释这个问题。 在Java开发中,测试类通常是与被测代码相分离的,通常以...