点击上方蓝色字体,关注我们
在本文中,我们将讨论关于TestNG的所有特征和应用。
TestNG在某种方式上对于开发者和测试者来说是一种更高级的测试框架,如果已经使用Junit框架的人来说,TestNG并没有什么高级的特征。JUnit在Java应用程序、Java开发人员和Java测试人员中很流行使用,很大程度上提高了代码质量。
尽管JUnit是一个易于使用和简单明了的框架,但它也有自己的局限性,这就需要引入TestNG。TestNG是由一个名为“Cedric Beust”的著名程序员创建的。TestNG是一个开源框架,它是在Apache软件许可下发布的,可以随时下载。
我们在WebDriver中引入TestNG的需求,是因为它提供了一种有效的测试结果格式,可以与大众共享,使我们可以了解产品/应用程序的健康状况,TestNG消除WebDriver无法生成测试报告的缺点。它有一个内置的异常处理机制,它允许程序在不意外终止的情况下运行。
TestNG和JUnit都属于同一个单元框架系列,TestNG是JUnit的扩展版本,在当前环境下得到了更广泛的使用
本文列表:
TestNG的特点
在Eclipse中安装TestNG
创建示例TestNG项目
创建TestNG类
执行TestNG脚本
HTML报告
在TestNG中设置优先级
代码走查
TestNG的注释:
总结
一.TestNG的特点
支持注释
支持参数化
不需要创建测试套件的高级执行方法
根据数据提供者提供的数据进行数据驱动测试
允许用户为测试方法设置执行优先级
在执行多线程时提供安全的环境
支持各种工具和插件的集成,如构建工具(Ant、Maven等)、集成开发环境(Eclipse)。
为用户使用ReportNG生成报表提供了有效的方法
TestNG与Junit对比:
TestNG比JUnit有许多优点:
高级且简单的注释
可以设置执行模式
测试脚本的并发执行
可以设置测试用例依赖项
在TestNG和JUnit中,注释前面都有一个“@”符号。
二.在Eclipse中安装TestNG
根据下面的步骤在eclipse上下载和安装TestNG
步骤一:启动eclipse IDE->点击菜单栏上的帮助选项->在下拉框中选择“Eclipse Marketplace..”选项
步骤二 在搜索框输入关键词“TestNG”,点击go 按钮
步骤三 当点击go 按钮后,显示匹配搜索的结果,点击install 按钮安装“TestNG”
步骤四 下载后会有一个弹出确认的弹窗,点击confirm确认
步骤五 接下来,应用会弹出接受license框,然后点击“Finish”按钮
步骤六 开始安装,可以看见安装进度条
重启 eclipse
重启后,点击菜单栏的“Window”选项下的“Preferences”来验证TestNG的安装。请参阅下图
三.创建TestNG项目示例
步骤一 点击菜单栏的File-> new->java Project
步骤二 输入项目名称如“DemoTestNG”,点击”Next”按钮,点击“Finish”按钮,这样java 项目创建成功
步骤三 导入TestNG 目录到新创建的java 项目,单击Build Path下的“Libraries”选项卡,点击“Add library”。
步骤四 在弹出的对话框,选择TestNG,点击“Next”按钮,点击“完成”按钮。
现在TestNG已经加入到Java project 中,如下图
将下载的所有Selenium库和jar添加到项目的构建路径中。
四.创建TestNG类
创建示例脚本
步骤一 展开“Demo TestNG”项目,选择 “src”文件夹,右键单击“src”包导航到New -> Other。
步骤二 打开TestNG选项,选择TestNG类选项,点击next 选项
步骤三 指定源文件夹、包名和TestNG类名,然后单击Finish按钮。
TestNG类将使用默认模式创建
场景:
启动浏览器,打开“Gmail.com”。
验证页面标题并打印验证结果。
输入用户名和密码。
单击登录按钮。
关闭web浏览器。
package TestNG;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
public class DemoTestNG {
public WebDriver driver = new FirefoxDriver();
String appUrl = "https://accounts.google.com";
@Test
public void gmailLogin() {
// launch the firefox browser and open the application url
driver.get("https://gmail.com");
// maximize the browser window
driver.manage().window().maximize();
// declare and initialize the variable to store the expected title of the webpage.
String expectedTitle = " Sign in - Google Accounts ";
// fetch the title of the web page and save it into a string variable
String actualTitle = driver.getTitle();
Assert.assertEquals(expectedTitle,actualTitle);
// enter a valid username in the email textbox
WebElement username = driver.findElement(By.id("Email"));
username.clear();
username.sendKeys("TestSelenium");
// enter a valid password in the password textbox
WebElement password = driver.findElement(By.id("Passwd"));
password.clear();
password.sendKeys("password123");
// click on the Sign in button
WebElement SignInButton = driver.findElement(By.id("signIn"));
SignInButton.click();
// close the web browser
driver.close();
}
}
代码解释:
1)@Test是TestNG注释之一。这个注释让程序知道标注为@Test的方法是一个测试方法。为了能够使用不同的TestNG注释,我们需要导入包“import org.testng.annotations.*”。
2)使用TestNG创建测试脚本时不需要main()方法。程序的执行是在注释的基础上完成的。
3)在语句中,我们在比较预期值和实际值时使用Assert类。Assert类用于执行各种验证。为了能够使用不同的类,我们需要导入“import org.testng.Assert”。
......
点击阅读原文查看全文
推荐阅读点击阅读☞只会用Selenium爬网页?Appium爬APP了解一下~
点击阅读☞Selenium测试框架篇|页面对象和元素对象的管理
点击阅读☞如何在Selenium项目中使用GeckoDriver?
点击阅读☞Selenium自动化测试框架之PO设计模式
点击阅读☞Python Selenium之数据驱动测试
阅读 全文,请点击下方“