使用 Selenium 和 TestNG 进行编程式测试

Testng与junit对比
  1. 总体概念
  TestNG,即Testing, Next Generation,下一代测试技术,是一套根据JUnit 和 NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试。
  2. 介绍
  TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器)。
  编写一个测试的过程有三个典型步骤:
  * 编写测试的 业务逻辑并在代码中插入TestNG annotation
  * 将测试信息添加到testng.xml文件或者build.xml中
  * 运行TestNG
  在欢迎页面上可以找到快速入门示例。
  下面是这篇文档使用的概念:
  * suite由xml文件描述。它包含一个或多个测试并被定义为标签
  * test由描述并包含一个或者多个TestNG类
  * TestNG类是包含至少一个TestNG annotation的java类,由标签描述并包含一个或多个测试方法
  * 测试方法是源文件中带有@Testd注释的java方法
  TestNG测试可以被@BeforeXXX 和 @AfterXXX annotations配置,容许在特定点的前后执行一些java逻辑,这些点上面已经列出。
  这份手册的剩余部分将讲述以下内容:
  * 所有的annotation列表并带有简短说明,为TestNG的多种功能性提供参考, 你可能需要参考为每个annotation提供的代码片段来学习细节。
  * testng.xml文件描述,它的语法和如果指定它。
  * 多个特性的详细列表和怎样结合annotation和testng.xml来使用它们
  *
  注:上面的内容很简短,但是请注意其中的一些细节。
  1. TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试到集成测试
  这个是TestNG设计的出发点,不仅仅是单元测试,而且可以用于集成测试。设计目标的不同,对比junit的只适合用于单元测试,TestNG无疑走的更远。
  可以用于集成测试,这个特性是我选择TestNG的最重要的原因。
  2. 测试的过程的三个典型步骤,注意和junit(4.0)相比,多了一个将测试信息添加到testng.xml文件或者build.xml
  测试信息尤其是测试数据不再写死在测试代码中,好处就是修改测试数据时不需要修改代码/编译了,从而有助于将测试人员引入单元测试/集成测试。
  3. 基本概念,相比junit的TestCase/TestSuite,TestNG有suite/test/test method三个级别,即将test/test method明确区分开了。
  junit中的TestCase将test/test method混合,比较容易让人概念不清晰,尤其是新手。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-28 18:10:57

使用 Selenium 和 TestNG 进行编程式测试的相关文章

spring学习笔记(21)编程式事务配置,service层概念引入

访问数据库事务导入 在我之前的文章<spring学习笔记(19)mysql读写分离后端AOP控制实例>中模拟数据库读写分离的例子,在访问数据库时使用的方法是: public <E> E add(Object object) { return (E) getSessionFactory().openSession().save(object); } 通过直接开启session而后保存对象.查询数据等操作,是没有事务的.而如果我们的项目规模变大,业务逻辑日益复杂,我们在一个方法中进行大

全面分析Spring的编程式事务管理及声明式事务管理

开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本教程假定您已经掌握了 Java 基础知识,并对 Spring 有一定了解.您还需要具备基本的事务管理的知识,比如:事务的定义,隔离级别的概念,等等.本文将直接使用这些概念而不做详细解释.另外,您最好掌握数据库的基础知识,虽然这不是必须. 系统需求 要试验这份教程中的工具和示例,硬件配置需求为:至少带

Testng 的数据源 驱动测试 代码与配置

JUnit中有讲述使用注解的方式进行数据源读取进行自动循环测试的方法,在TestNG中也提供了相应的方法 public class TestngDataProvider { /** * 数组内的每个元素都会作为一个用例数据被执行 On execution testEmployeeData() will be executed 4 * times, * * 数据源可以是Java对象.配置文件.数据库 * * @return */ @DataProvider(name = "DP1") p

testng里面如果递归测试package下的package

问题描述 我的testng.xml如下:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEsuiteSYSTEM"http://testng.org/testng-1.0.dtd"><suitename="test"><testname="SMOKE"preserve-order="true"verbose

Hibernate中编程式事物的简单使用

一,openSessioin方式开启或者关闭事物           Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction();//开启事务 //TODO:各类CRUD操作 session.getTransaction().commit(); //提交事务 } catch (Exception e) { e.printStackTrace(); session.g

基于TestNG 与Selenium 的自动化测试设计与实施

1.引言 软件测试是关系到软件开发和维护成本的重要环节.任何软件产品在正式发布之前都必须经过严格的测试.随着计算机技术的迅速发展,软件的结构越来越复杂,同业竞争越来越激烈.为了保证软件产品的高度可靠性和竞争力,很多软件开发机构都将其主要的研制力量投入到软件测试之中. 回归测试是软件测试中的重要组成部分,占有很大的比重.每次例行包发布前都需要对软件现有功能进行回归验证,确保无误以后才能发给各地现场,大家都知道电信业是个发展较快的行业,需求变更快.迭代周期短,从而导致回归测试十分频繁,这个时候如果单

使用Selenium Grid改进Web应用程序的测试

通过真实的测试项目和代码示例,学习如何在多个环境中并行地执行测试和加快 Web 应用程序的测试速度. Selenium Remote Control (RC) 是 Selenium 项目工具套件的一个部分,它是一个自动化的 Web 应用程序测试框架.Selenium RC 支持许多的编程语言和几乎所有的浏览器.Selenium RC 最重要的优势是浏览器的驱动方法.与其他 Web UI 自动化工具不同,Selenium RC 是通过 http://www.aliyun.com/zixun/agg

Selenium一款有名的Web应用程序测试框架

在本文中,我们将介绍如何轻松地从 Selenium 1 过渡到 Selenium 2,并用一些示例介绍如何使用 Selenium 2,如何进行远程测试,以及如何将书面测试从 Selenium 1 迁移到 Selenium 2 中. Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试. Selenium(以下简称为 Selenium 1)

TestNG官方文档中文版(9)-重复失败测试,junit测试,jdk1.4支持

5.10 - Rerunning failed tests 套件中的测试失败时,每次testNG都会在输出目录中创建一个名为testng-failed.xml 的文件.这个xml文件包含只重新运行这些失败的测试方法的必要信息,容许只运行这些 失败的测试而不必运行全部测试.因此,一种典型的情况将是这样: java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs testng.xml java -classpat