java接口自动化(二):TestNG的使用

什么是TestNG

TestNG是一个受JUnit和NUnit启发的测试框架,但引入了一些使其更强大且更易于使用的新功能,例如:

  • 注解。
  • 在具有各种可用策略的任意大线程池中运行测试(所有方法都在各自的线程中,每个测试类一个线程,等等)。
  • 测试您的代码是否是多线程安全的。
  • 灵活的测试配置。
  • 支持数据驱动的测试(使用@DataProvider)。
  • 支持参数。
  • 强大的执行模型(不再需要TestSuite)。
  • 由各种工具和插件(Eclipse,IDEA,Maven等)支持。
  • 嵌入BeanShell以获得更高的灵活性。
  • 用于运行时和日志记录的默认JDK函数(无依赖项)。
  • 应用服务器测试的相关方法。

TestNG旨在涵盖所有类别的测试:单元,功能,端到端,集成等。

在Maven中引用TestNG

使用Maven作为项目管理工具,需要在pom.xml中添加以下依赖,将groupId、artifactId和version引进来后,就可以使用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>

等我们执行testNG.xml文件的时候可能会抛出ElementTravelsal找不到的问题,此时我们需要导入以下依赖:

<!-- https://mvnrepository.com/artifact/xml-apis/xml-apis -->
<dependency>
    <groupId>xml-apis</groupId>
    <artifactId>xml-apis</artifactId>
    <version>1.4.01</version>
</dependency>
在Gradle中引用TestNG

使用Gradle作为项目管理工具,需要在build.gradle中dependencies添加以下就可正常使用。

testCompile group: 'org.testng', name: 'testng', version: '7.1.0'

顺便说一下什么是Gradle。Gradle是一个基于Ant和Maven概念的项目自动化构建工具,它是通过Groovy来声明项目设置,而不是传统的XML.支持Java\Groovy和Scala语言。

TestNG.xml文件

testNG.xml文件格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!--测试套件-->
<suite namme="Suite" parallel="false">
    <!--测试集合-->
	<test name="Test">
        <!--测试类集合-->
        <classes>
            <!--测试类,可有多个-->
        	<class name = "com.muchuan.test.Test2"/>
        </classes>
    </test>
</suite>

文件解释:

  • <suite> 测试套件,将所有测试类整理在一块,形成一套测试用例;parallel 需不需要用到并发
  • <test> 测试集合,就是测试类的集合,一般我们可以把一个小模块当成一个test测试集来设计
  • <classes> 此测试集合下所有的测试类
  • <class> 对应的相关测试类,name 指定测试类的完整路径(包含包名)

dtd 文件定义了xml文件的模板和约束

执行测试套件:其实执行的是套件中定义的每个测试集底下对应所有测试类中的所有测试方法

TestNG常用注解

非配置类注解

@Test 标记方法(函数)为测试方法

@Test
public void test(){
   
    System.out.print("这是一个测试方法");
}
参数化注解

在testNG.xml配置文件中定义参数

<!--定义参数-->
<parameter name = "author" value = "MuChuan"></parameter>

@parameter 注入testng.xml中定义的<parameter>参数

@Test
@parameter(value = {
   "author"})
public 
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值