java testng_java—TestNG单元测试框架

本文介绍了TestNG单元测试框架的常用注解,如@Test、@BeforeMethod/@AfterMethod等,并展示了如何进行忽略测试、超时测试、依赖测试和设置测试方法优先级。还涵盖了TestNG的断言方法和XML配置文件的使用,以及如何处理Maven构建过程中的相关问题和参数化测试。
摘要由CSDN通过智能技术生成

//依赖坐标

org.testng

testng

6.14.3

test

TestNG的常用注解

1、@Test

标记为测试方法

6c4938da58bb0287f498a23e4890ca75.png

2、 @BeforeMethod/@AfterMethod

在某个测试方法(method)执行之前/结束之后

3、@BeforeClass/@AfterClass

在某个测试类(class)所有开始之前/结束之后

4、@BeforeTest/@AfterTest

在某个测试(test)所有测试方法执行开始之前/结束之后

5、@BeforeSuite/@AfterSuite

在某个测试套件(suite)所有测试方法执行开始之前/结束之后

package com.learn.testing;

import org.testng.annotations.*;

public class TestingTest {

@BeforeMethod

publicvoidsetUpMethod(){

System.out.println("测试方法之前");

}

@AfterMethod

publicvoidtearDownMethod(){

System.out.println("测试方法之后");

}

@BeforeClass

publicvoidsetUpClass(){

System.out.println("测试类之前");

}

@AfterClass

publicvoidtearDownClass(){

System.out.println("测试类之后");

}

@Test

publicvoidprintA(){

System.out.println("A");

}

@Test

publicvoidprintB(){

System.out.println("B");

}

}

结果:

测试类之前

测试方法之前

A

测试方法之后

测试方法之前

B

测试方法之后

测试类之后

Test注解常用属性

1、忽略测试:

当我们在测试的过程中,因为某些方面的原因,比如测试方法没有写完,或者有问题,我们暂时希望它不得到执行,我们就可以添加忽略标签来跳过此方法的运行。

@Test(enabled = false)

2、超时测试:

“超时”表示如果自动化测试花费的时间超过指定的毫秒数,那么TestNG将会中止它并将其标记为失败。这样在某些业务场景下,我们认为一个请求时间过长我们就可以直接宣判他因为超时而失败。

@Test(timeout=1000)

timeout属性的单位为毫秒。

@Test(timeOut=1000)public void printA() throwsInterruptedException {

Thread.sleep(2000);

System.out.println("A");

}

3、依赖测试:

测试方法依赖于某些方法

示例:

@Test(dependsOnMethods={"test2"})

方法执行顺序

step1:先执行被依赖的方法

step2:再依次执行没配置依赖的方法

step3:最后执行需要依赖的测试方法

(本来的执行顺序是按照字母先后执行的)

public classTestingTest02 {

@Test(dependsOnMethods= {"printC", "printB"})public voidprintA() {

System.out.println("A");

}

@Testpublic voidprintB() {

System.out.println("B");

}

@Testpublic voidprintC() {

System.out.println("C");

}

}

结果:

B

C

A//A依赖于BC,所以先执行BC

4、测试方法优先级:

@Test(priority = 1)

数字越小,优先级越高

注:如果在一个测试类里面设置了优先级,那么其他的测试类都要设置优先级,不然执行TestNG.xml文件的时候可能会有问题

TestNG常用断言

1、Assert.assertTrue();

判断是否为True

2、Assert.assertFalse();

判断是否为false

3、Assert.assertEquals()

判断是否相等

String expectedValue ="lemon";int statusCode=200;

Assert.assertEquals("lemo",expectedValue);

Assert.assertEquals(404,statusCode);

Assert.assertTrue(statusCode==404);

Assert.assertTrue(statusCode==200);//web自动化一般根据什么来去做断言://1、URL地址 2、title 3、页面提示信息 4、元素属性

TestNG.xml配置文件

f33d58d19579bb85d34ffe5ec3b63760.png

6a5c814eb8b811867d4169cd4859d054.png

7459d994b928e8b01e3145c0f3ef5232.png

657694e285a907b02cdc8303f0952d5f.png

002b4d1410622d0409b4d29f1f897915.png

1ad1e349d413825be11b345f74dbfce0.png

028ec30d6f9a5d326ab55113efdc75da.png

调用Maven命令执行测试用例

5ad9b23f3f931ca0b4a1fd70feab0001.png

17c3e96535fc49fb0b86ebe8f693e51c.png

org.apache.maven.plugins

maven-surefire-plugin

2.7.1

TestNG.xml ----注意这里的TestNG.xml与项目根目录下的TestNG.xml同名

392265a24bb9cf94edd75ecd0ff0c74f.png

12dad5f8b62a6919b3f47fa601502ff1.png

删除通过构建产生的target文件夹方法:

1、手动删除

2、在命令行通过mvn clean删除

1d2f0628835f551e017a37938811a63d.png

maven构建后结果乱码问题解决:

4a09c31c51d571e276833cbc206d9316.png

在pom.xml中加入如下配置指定编码UTF-8

UTF-8

UTF-8

UTF-8

TestNG参数化

(参数化后不能直接运行测试方法,不然读不到testng.xml里面的参数,要去运行testng.xml文件)

43f79828407d54bcc60f8eff6a7973f2.png

fc127933621c400de0374cf2098974a3.png

b9ddd723a9780a24b739e5a6ab16f111.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值