《手把手教你》系列基础篇(七十二)-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工具基础使用教程

相关文章
|
3月前
|
Java 关系型数据库 数据库
Java 项目实战教程从基础到进阶实战案例分析详解
本文介绍了多个Java项目实战案例,涵盖企业级管理系统、电商平台、在线书店及新手小项目,结合Spring Boot、Spring Cloud、MyBatis等主流技术,通过实际应用场景帮助开发者掌握Java项目开发的核心技能,适合从基础到进阶的学习与实践。
402 3
|
2月前
|
安全 Java
Java之泛型使用教程
Java之泛型使用教程
210 10
|
1月前
|
Oracle Java 关系型数据库
Java 简单教程
Java是跨平台、面向对象的编程语言,广泛用于企业开发、Android应用等。本教程涵盖环境搭建、基础语法、流程控制、面向对象、集合与异常处理,助你快速入门并编写简单程序,为进一步深入学习打下坚实基础。
262 0
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
909 23
|
7月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
966 24
|
7月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
301 2
|
9月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
576 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
9月前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
463 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
8月前
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。