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

简介: 【6月更文挑战第13天】本文介绍了TestNG单元测试框架,它是一个灵感来源于JUnit和NUnit的测试框架,支持多种级别的测试,如单元测试、集成测试等。TestNG的特点包括丰富的注解、数据驱动测试、变量支持、自动生成HTML测试报告等。与JUnit和NUnit相比,TestNG在某些功能上更为强大。文章还详细讲解了如何在Eclipse中安装TestNG插件,提供了在线安装、更新站点安装和离线安装三种方法,并展示了安装成功的验证步骤。最后,通过一个项目实战案例展示了如何使用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的使用,基本上这些使用我们在框架设计里都会涉及。



每天学习一点,今后必成大神-


往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):


Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

相关文章
|
5月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
131 2
|
5月前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
308 5
|
5月前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
117 3
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
1月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
53 0
|
2月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
3月前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
3月前
|
Web App开发 测试技术 持续交付
自动化测试的利器:Selenium与Python的完美结合
【9月更文挑战第21天】在软件开发的世界里,测试是确保产品质量的关键步骤。随着敏捷开发和持续集成的流行,自动化测试工具变得尤为重要。本文将介绍如何使用Selenium和Python进行高效的自动化测试,不仅提供代码示例,还深入探讨如何设计测试用例、选择正确的测试框架、以及如何整合到CI/CD流程中。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
59 3
|
3月前
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。