来源:http://www.51testing.com
设置和安装
在Eclipse上安装TestNG并执行你的第一个测试
本教程详细讨论以下主题:
1.TestNG简介
2.TestNG的优势
3.在Eclipse上安装TestNG
4.使用TestNG依赖关系创建Java项目
5.创建你的第一个TestNG类
6.运行TestNG测试
从TestNG开始
注释教程
TestNG使用注释来帮助开发人员编写测试。了解TestNG提供的所有注释及其简要说明。
注释之前和之后
在执行测试方法之前和之后,注释之前和之后主要用于执行特定的一组代码。这些用于在测试执行开始之前基本上设置一些变量或配置,然后在测试执行结束后清除所有这些内容。
预期异常和预期消息
在编写单元测试时,可能会出现某些情况,我们需要验证程序在执行期间是否正在抛出异常。TestNG提供了一种功能,通过允许用户指定执行过程中期望由测试方法抛出的异常类型来测试这种情况。它支持为验证提供多个值。如果测试引发的异常不是用户输入列表的一部分,则测试方法将被标记为失败。
如何禁用/忽略测试方法
执行TestNG测试时,可能会出现一些情况,您可能必须禁用特定测试或一组测试才能执行。例如,考虑某个特性中存在严重错误的情况,这是由于某些测试属于某些无法执行的情况。由于问题已经确定,我们可能需要禁用执行上述测试场景。
超时测试
在运行测试时,可能会出现某些测试卡住或可能比预期花费更多时间的情况。在这种情况下,您可能需要将上述测试用例标记为失败,然后继续。在本教程中,我们将学习如何将TestNG测试配置为在一段配置的持续时间后超时。
通过testng.xml和@Parameters注解传递参数
TestNG的一个重要特性是参数化。此功能允许用户将参数值作为参数传递给测试方法。这通过使用@Parameters注释来支持。
先进的概念
通过@DataProvider传递参数
TestNG提供的一个重要功能是DataProvider功能。它可以帮助您编写数据驱动的测试,这基本上意味着可以使用不同的数据集多次运行相同的测试方法。它有助于为测试方法提供复杂的参数,因为它不可能从XML中完成。
测试组,元组,默认组示例
分组测试方法是TestNG最重要的特性之一。在TestNG用户可以将多个测试方法分组到一个命名组中。您还可以执行属于一个或多个组的一组特定测试方法。该功能允许将测试方法分成不同的部分或模块。
了解本教程中的以下主题:
1.分组测试示例
2.通过Eclipse运行TestNG组
3.通过testng.xml运行TestNG组
4.编写属于多个组的测试
5.包括和排除组
6.使用正则表达式
7.默认组
8.组群
相关测试示例
依赖性是TestNG中的一个特性,它允许测试方法依赖于单个或一组测试方法。这将有助于执行测试方法之前执行的一组测试。如果“依赖方法”是同一个类或任何继承基类的一部分(即扩展类时),则方法依赖只能起作用。
@Factory注解
了解TestNG提供的@Factory注释。@Factory允许在运行时根据特定的数据集或条件创建测试。
@Factory和@DataProvider之间的区别
在学习TestNG的同时,很多人在阅读@DataProvider和@Factory注解时会感到困惑 - 什么时候使用?还有什么更好?我们来看看它们的两个功能。
执行并行测试
软件术语中的并行或多线程被定义为软件,操作系统或程序同时执行另一程序的多个部分或子部件的能力。TestNG允许测试以并行或多线程模式运行。这意味着基于测试套件配置,不同的线程同时启动并在其中执行测试方法。这为用户提供了比正常执行更多的优势,主要是减少了执行时间和验证多线程代码的能力。
了解以下主题:
1.并行测试执行的优点
2.并行运行测试方法
3.并行运行测试类
4.并行运行套件内部的测试
5.配置测试方法以在多个线程中运行
使用Maven构建执行TestNG测试
学习如何使用Maven构建文件即pom.xml文件来执行testng测试。如果您计划自动化测试并将其作为项目构建过程本身的一部分,则这些知识非常重要。
顾翔凡言:
读书就像旅游,精读就像自由行、泛读就像跟团游。精读为了专业掌握某个技能;泛读为了扩大自己的知识广度;跟团游为了增加自己的旅游范围;自由行为了深入了解当地文化。测试也如此,对于同一产品广泛的广度测试与某个模块的深度测试全是不可缺少。根据帕托累斯原理,80%的Bug分布在20%的模快,所以为了有效的节省测试时间,我们需要进行广度测试,找到20%缺陷密集模块,然后进行深度测试。