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年多整理出这一份全网超详细的入门到精通教程