初探Java+TestNG自动化测试

最近看到测试组在搭建TestNG框架,周末在家,本地搭建,方便备查。

测试是程序上线的最后一道关,关于测试的三个重要观点。
1)测试是为了证明程序有错,而不是证明程序无错误;
2)一个好的测试用例是在于它能发现至今未发现的错误;
3)一个成功的测试是发现了至今未发现的错误的测试。

TestNG 是开源的Java自动化测试框架。
反射 即将Java类中的各种成分映射成一个个的Java对象

Student stu = new Student();
// 方式一、通过Object类的getClass方法
Class cla = stu.getClass();
// 方式二、通过类的静态成员变量获取对象
Class cla = Student.class;
// 方式三、通过Class.forName方式
Class cla = Class.forName("xx.xx.stu");

以 eclipse 编译器为例,下面介绍安装和使用的过程。

第一步、安装插件

主要有在线和离线两种安装方式

方式一、在线安装

在 编辑栏help -> Install New Software,在弹出窗体输入(http://beust.com/eclipse)内容,会自动搜索testng 插件,点击OK即可。
在这里插入图片描述

方式二、离线下载

TestNG下载地址:github-testng,可参考文档【2】。
版本信息:
eclipse:Mars.2 Release (4.5.2)
TestNG:7.4.0.202106051955
下载的TestNG 解压后,两个文件夹,如下图所示。
在这里插入图片描述
featuresplugins 分别放到eclipse的安装目录下的 features 和 plugins,其他jar包放到 eclipse 的根目录即可,效果如下图所示。
在这里插入图片描述
在 eclipse 的菜单栏 Files -> others -> TestNG,则表示插件安装成功。
在这里插入图片描述

第二步、新建项目

新建 Java project 项目,右键 - > Add Library,选择 TestNG,如下图所示。
在这里插入图片描述

第三步、新建TestNG测试类

右键-新建-> others -> 选择 TestNG class,起名字 TestNGTest。
在这里插入图片描述

注解
@BeforeTest 测试方法运行前执行
@AfterTest 测试方法执行后执行

简单测试类代码如下所示。

扫描二维码关注公众号,回复: 14792339 查看本文章
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class TestNGTest {
    
    
  @Test
  public void f() {
    
    
  }
  
  @BeforeTest
  public void before(){
    
    
	  System.err.println("before执行完毕");
  }
  
  @AfterTest
  public void after(){
    
    
	  System.err.println("after执行完毕");
  }
}

在测试类 空白处 右键 - Run As - > TestNG Test,即开始执行测试类。
在这里插入图片描述

第四步、参数传递

第一种、DataProvider 注解方式
DataProvider 注解定义数组,@Test 可获取到数组的值,进行使用。样例验证数组中的两个值是否一致,代码如下所示。

  @DataProvider()
  public Object[][]citys(){
    
    
	  return new Object[][]{
    
    
		  {
    
    "BJ","Beijing"},
		  {
    
    "shanghai","shanghai"},
		  {
    
    "sz","Shenzhen"}
	  };
  }
  
  @Test(dataProvider="citys")
  public void testEqual(String city,String spail){
    
    
	  Assert.assertEquals(city, spail,"比较城市拼写异同");
  }

执行结果,两个失败,一个成功,结果如下所示。
在这里插入图片描述
第二种、xml形式
在 src 目录下,新建 TestNG.xml 文件,参数放在 parameter 标签内,注意 class 路径为包名+类名,xml 内容如下。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suit1">
	<parameter name="TianJing" value="TianJing"/>
	<parameter name="ShanDong" value="ShanDong"/>
	<test name="TestXml01">
		<classes>
			<!-- 包名+类名-->
			<class name="org.henu.testng.TestNGTest" />
		</classes>
	</test>
</suite>

在测试类中用 parameter 标签接收参数,代码如下所示。

    @Test
  @Parameters({
    
    "TianJing","ShanDong"})
  public void testXml(String city,String city1){
    
    
	  System.out.println("city的值为:"+city);
	  System.out.println("city1的值为:"+city1);
	  Assert.assertEquals(city, "TianJing","比较城市拼写异同");
  }

在 TestNG.xml 文件,右键 -> Run As -> 选择 TestNG Suite 运行。
在这里插入图片描述
打印输出结果
在这里插入图片描述
TestNG测试输出结果如下。
在这里插入图片描述

参考文档

【1】https://github.com/cbeust/testng-eclipse/

猜你喜欢

转载自blog.csdn.net/u012190388/article/details/129387264