TestNG+maven+idea 环境基本使用

一起学习TestNg

官网:https://testng.org/doc/index.html

一、环境搭建

这里选择idea+maven  也是比较主流的

idea 和 maven 安装配置不在讲解

这里使用testng 此版本  其他版本可以去maven中央仓库找找

<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.14.3</version>
    <scope>test</scope>
</dependency>

1.1 配置到pom.xml 文件下,然后拉到本地仓库

导入完成之后就可以使用了,testng 主要学习他里面一些注解 和 执行流程

TestNG的主要特点:注解

1. TestNG使用Java和面向对象的功能
2. 支持综合类测试(单元测试、集成测试)
3. 灵活的运行时配置(testng.xml)
4. 支持依赖测试方法,并行测试,负载测试,局部故障
5. 支持多线程测试
6. 支持数据驱动的测试
7. 可扩展

TestNG使用基本步骤
1. 编写测试代码
2. 编写配置文件,testng.xml
3. 运行测试程序

这是他的以下注解:

当我们使用一个 注解@Test 的时候 报红了 找不到 如下例:

这是什么原因那 ?

在pom.xml文件引用testng的时候,有个标签<scope>test</scope>限制了只能在test目录下使用

在POM 4中,<dependency>中引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
compile,缺省值,适用于所有阶段,会随着项目一起发布。
provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

解决:所以只需要将上面pom.xml文件中的<scope>test</scope>去掉或者改成<scope>compile</scope>

二、注解基本使用

执行一个测试用例

@Tset  :标记一个类或方法作为用例一部分

执行多个用例

 

注解:

@BeforeMethod:注解的方法 将在每一个测试方法之前执行

@AfterMethod :注解的方法 将在每一个测试方法之后执行

 

注解执行顺序: 

TestNG中测试的级别
  Suite:最上层的元素
  Test:次一级的元素
  Class:测试类
  Method:测试类中的方法

import org.testng.annotations.*;



public class BATest {

    @BeforeSuite
    public static void bfSuite(){
        System.out.println("测试套件++++开始");
    }

    @AfterSuite
    public static void afSuite(){
        System.out.println("测试套件-----结束");
    }

    @BeforeClass
    public static void bfCalss(){
        System.out.println("测试这个类最先执行+++++");
    }

    @AfterClass
    public static void afCalss(){
        System.out.println("测试这个类最后执行------");
    }


    @BeforeTest
    public static void bfTest(){
        System.out.println("测试之前的一些准备");
    }

    @AfterTest
    public static void afTest(){
        System.out.println("测试完成后的一些结束");
    }


    @BeforeMethod
    public static void bfMethood(){
        System.out.println("将每执行一个测试方法前执行");
    }

    @AfterMethod
    public static void afMethood(){
        System.out.println("将每执行一个测试方法后执行");
    }

    @Test
    public static void testCase01(){
        System.out.println("测试用例一执行");
    }


    @Test
    public static void testCase02(){
        System.out.println("测试用例二执行");
    }


}
原文地址:https://www.cnblogs.com/niunai/p/14925712.html