《手把手教你》系列基础篇(七十二)-java+ selenium自动化测试-框架设计基础-TestNG简单介绍(详解教程)

1.简介

前面文章细心的小伙伴会发现宏哥在运行测试用例的时候有的是在main方法下,而有的不需要用main方法去执行用例,那么为什么有的就不需要在main方法下就能够成功运行测试用例了。这就需要单元测试框架的支持,这篇宏哥就来简单介绍TestNG单元测试框架的安装和基本使用。

2.什么是testng?

TestNG按照官方的定义:TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便。

 TestNG是一个测试框架,它能覆盖不同层级的测试,例如,单元测试,集成测试,端对端测试等。我们可以把Selenium和TestNG结合一起,在Eclipse中用Java写TestNG脚本。

3.testng的特点

1)注释,很多注释提供

2)支持数据驱动测试(@DataProvider)

3)支持变量

4)自动生成测试报告

5)通过配置testng.xml,我们可以只执行测试失败的用例

6)支持很多IDE工具(Eclipse等)

7)默认JDK支持监控运行和日志

8)独立的程序服务器测试方法(API)

4.TestNG 、Junit和Nunit区别

1)三者都是独立于测试框架,在市场上都可以免费得到。

2)TestNG和Junit在JAVA上使用,Nunit在C#上使用

3)Junit是Eclipse自带工具,TestNG需要自己安装插件

4)相对TestNG而言,Junit的注释很少

5)Junit不能生成html格式报告,TestNG能生成丰富的html报告

其他对比就不讲了,有兴趣可以到各自官网去查看。

5.在Eeclipse中安装testNG

在官网上部导航区域点击“Download”链接,该页面介绍了集成TestNG的不同方式。

在“Eclipse plug-in”区域介绍了两种Eclipse安装插件的方式。

硬性要求:JDK1.7以上版本、Eclipse4.2以上版本。

Java 1.7+ is required for running the TestNG for Eclipse plugin.

Eclipse 4.2 and above is required. Eclipse 3.x is NOT supported any more, please update your Eclipse to 4.2 or above.

两种在线安装方式:

5.1通过Eclipse Marketplace安装

1)打开Eclipse Help ->MarketPlace,在搜索框里面输入TestNG搜索,然后安装TestNG插件。

2)点击“Install”,稍等几分钟,等待插件下载

3)下载成功后,点击“Confirm”,进行安装(其中第二个Maven项目可选择安装也可以不安装,但是宏哥建议都安装上)

4)稍等一会等待安装

5.2通过Update Site安装

1) 通过update site也可以进行插件的安装,方法是:在Eclipse中点击Help菜单,选择Install New Software选项,在弹出页面中输入安装地址:http://beust.com/eclipse即可安装。

5.3离线安装TestNG插件

受网络等因素影响,在线安装方式速度比较慢,可以通过如下方式离线安装TestNG插件。

1)通过testng下载网址找到插件下载地址,

2)浏览器直接访问网址, http://beust.com/eclipse

3)选择最下部的zipped文件夹链接;

4)选择版本,如:“7.0.0.201908240652/

 

5)点击超链接,即可下载离线安装文件。

6)解压压缩包,文件目录如下图所示。可以把features和plugins中的内容分别拷贝到eclipse对应文件夹;

       或把解压后的整个目录拷贝到dropins中。

       验证是否安装成功:

     a) 打开命令行,到当前eclipse的目录下,输入eclipse -clean,重新启动eclipse,这样eclipse就会加上新的插件了。
     b) 如果插件不能生效,则请将eclipse\configuration\org.eclipse.update目录删除后再启动eclipse。

7) 不解压文件,通过eclipse的Install new software安装。

8)点击Add,弹出Install Repository对话框,填写Name,点击“Archive”按钮,选择本地要安装的Jar或者Zip文件,如下图:

9)点击OK,如下图:

10)根据需求勾选上列表框中的安装项,点击“Next”,然后根据提示一直往下操作,直到Finish,这样就完成了。

5.4验证插件安装是否成功

1)打开Eclipse,新建-other,选择“TestNG——>TestNG Class”。

2)出现上边截图这个说明插件安装成功。

至此环境搭建完成,可以开始写测试的case了。

6..新建一个TestNG类

1)在一个包下,鼠标右键,New->other,点击TestNG,然后选择TestNG class,如下图所示:

 2)点击Next,class name命名为:FirstTestNgClass,勾选Beforeclass和Afterclass,如下图所示:

 3)点击“Finish”完成类的创建。

在BeforeClass中写启动浏览器脚本。在AfterClass中写退出浏览器代码,在@Test中写我们测试脚本。记住,所有有关测试脚本,都需要写到@Test下的方法,也就是说,你写这个函数或者方法是关于测试脚本的,那么你就要在该方法前面加上@Test这个注释,可以添加多个@Test的测试函数。

7.项目实战

7.1代码设计

宏哥把启动浏览器和浏览器最大化放在了setup方法里,一般setup方法是写一些用例的前置条件,而@Test注释的方法才是我们测试脚本,afterClass方法里一般写清除测试数据之类的操作,webUI自动化测试一般写退出浏览器操作。

7.2参考代码

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥
 * 
 * 《手把手教你》系列基础篇(七十二)-java+ selenium自动化测试-框架设计基础-TestNG简单介绍(详解教程)
 *
 * 2022年2月21日
 */
public class FirstTestNgClass {

  WebDriver driver;
  @Test
  public void OpenBaidu() {
      
      driver.get("https://www.baidu.com");
      driver.findElement(By.id("kw")).sendKeys("Selenium");
      driver.findElement(By.id("su")).click();
  }
  @BeforeClass
  public void beforeClass() {
      
      System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
      driver = new ChromeDriver();
      driver.manage().window().maximize();
      
  }

  @AfterClass
  public void afterClass() {
      
    try {
        Thread.sleep(2000);
        driver.quit();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
  }

}

7.3运行代码

1)运行代码,右键Run AS->TestNG Test,控制台输出,如下图所示:

2)运行代码后电脑端的浏览器的动作,如下小视频所示:

8.测试报告

TestNG自带测试报告,每次运行TestNG都会生成一个测试报告,你可以在运行结束后,右键你eclipse项目-刷新,然后就可以看到项目的根目录下生成一个test-output的文件夹,你可以右键open with->Web Browser打开emailable-report.html,如下图所示:

9.小结

好了,时间不早了,今天关于TestNG的安装和简单使用就介绍到这里,下面几篇文章都会陆续介绍TestNG的使用,基本上这些使用我们在框架设计里都会涉及。

posted @ 2022-03-09 09:47  北京-宏哥  阅读(872)  评论(0编辑  收藏  举报
停止精灵球