首页 > 其他分享 >TestNG官方文档中文版

TestNG官方文档中文版

时间:2023-10-26 12:06:29浏览次数:30  
标签:中文版 TestNG 文档 测试 Test testng 方法 public 测试方法


TestNG官方文档中文版(1) -介绍

T e s t NG 的 官 方 文 档 请 见 :
http://testng.org/doc/documentation-main.html

1 介绍
T e s t N G 是 一 个 设 计 用 来 简 化 广 泛 的 测 试 需 求 的 测 试 框 架 , 从 单 元 测 试 (隔 离测试- 个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的鉴 个系统,例如远用服务器)。
编写一个测试的过程有三个典型步骤:
* 编写测试的 业务逻辑并在代码中插入TestNGannotat ion
* 将 测 试 信 息 添 加 到 t e s t n g . x m l 文 件 或 者 b u i l d . x ml 中

* 运 行 Te s t NG
在欢迎页面上可以找到快速入门示例。 下面是这篇文档使用的概念:
        *suite由xnl 文件描述。它包含一个或多个测试并被定义为<suite›标签

        * test 由<test>描述并包含 一个或者多个TestNG类
* T e s t N G 类 是 包 含 至 少 一个 T e s t N G a n n o t a t i o n 的 j a v a 类 , 由 < c l a s s > 标 签 描 述并包含 一个或多个测试方法
* 测试方法是源文件中带有@Testd注释的java 方法
        T e s t NG 测 试 可 以 被 @Be f o r e x x x 和 @A f t e r x X x a n n o t a t i o n s 配 置,容许在特定点的前后执行一些 java逻辑,这些点上面已经列出。

这份手册的剩余部分将讲述以 下内容:
* 所 有 的 a n n o t a t i o n 列 表 并 带 有 简 短 说 明 ,为 T e s t NG 的 多 种 功 能 性 提 供 参 考 , 你可能需要参考为每个annotat ion 提供的代码片段来学习细节。
* testng. xml文件描述,它的语法和如果指定它。

 * 多个特性的详细列表和怎样结合annot at ion 和tes tng. xml 来使用它们
注 :上面的内容很简短,但是请注意其中的一些细节。
1. Te s t NG 是一 个设计用来简 化广泛的测试需 求的测试框架, 从单元测 试到 集成测试
这 个 是 T e s t NG 设 计 的 出 发 点 ,不 仅 仅 是 单 元 测 试 , 布 且 可 以 用 于 集 成 测 试 。 设计目标的不同,对比j un i t 的只适合用于单元测试,Test NG无疑走的更远。
可以用于集成测试,这个特性是我选择TestNG的最重要的原因。
2. 测试的过程的三个典型步骤,注意和junit(4.0)相比,多了一个将测试信息添加到testng.xml 文件或者build.xml

测试信息尤其是测试数据不再写死在测试代码中,好处就是修改测试数据时不需要修改代码/ 编译了,从而有助于将测试人员引入单元测试/集成测试。

3. 基本概念,相比junit 的TestCase/TestSuite, TestvG有suite/test/test method三个级别,即将test/test method明确区分开了。

junit 中的TestCase将test/test method混合,比较容易让人概念不清晰,尤其是新手。
 

Te s t NG 官 方 文档 中 文版 ( 2 ) - a n n o t a t i o n

Tes t NG的官方文档的中文翻译版第二章,原文请见
http://testng.org/doc/documentation-main.html2-Annotation 这里是TestNG中用到的annotat ion 的快速预览,还有它们的属性。
@BeforeSuite:
被注释的方法将在所有测试运行前运行

@AfterSuite: 被注释的方法将在所有测试运行后运行
@BeforeTest:
被注释的方法将在测试运行前运行

@AfterTest:

被注释的方法将在测试运行后运行

@B e f o r e G r o u p s :
被配置的方法将在列表中的gou rp 前运 行。这个方法保证在第一个属于这些组的测试方法调用前立即执行。
@A f t e r G r o u p s :
被配置的方法将在列表中的gour p 后运行。 这个方法保证在最后 一个属于这些组的测试方法调用后立即执行。
@B e f o r e C l a s s : 被注释的方法将在当前类的第一个测试方法调用前运行。
@AfterClass: 被注释的方法将在当前类的第一个测试方用后 运行 。
@BeforeMethod: 被注释的方法将在每 一个测试方法调用前运行。
@AfterMethod: 被注释的方法将在每一个测试方法调用后运行。
属性:
alwaysRun
对于每个bufore 方法(beforeSuite, beforeTest, beforeTestClass 和 beforeTestMethod,但是不包括 beforeGroups):
如 果 设 置 为 t r u e , 被 配 置 的 方 法 将 总 是 运 行 市 不 管 它 属 于哪 个 组 。
对 于 a f t e r 方 法 ( a f t e r S u i t e , a f t e r C l a s s , . . . ): 如 果 设 置 为 t r u e , 被 配置的方法甚至在一个或多个先调用的方法失败或被忽略时也将运行。

 dependsOnGroups:这个方法依赖的组列表

dependsOnMethods:这个方法依赖的方法列表
enabled:这个类的方法是否激活

grOUDs:这个类或方法所属的分组列表
inheritGroups:如果设置为tr ue,这个方法被属于在类级 別被@Test annotation指定的组
@DataProvider:标记 一个方法用于为测试方法提供数据。

被注释的方法必须返回Obj ect 又,其中每个Obj ect 又] 可以指派为这个 测试方法的参数列表。
从这个DataProvider 按收数据@Tes t 方法需要使用一个和当前注释相同名 称的dataProvider 名称
name :这个DataProvider的名称
@Factor y :标记方法作为一个返回对象的工厂,这些对象将被TestNG 用于作为测试类。这个方法必须返回Ob ject [ ]
@Parameters:描述如何传递参数给@Test 方法
v a l u e :用 于填充这 个方法的参数的变量列表

@Test:标记一个类或方法作为测试的一- 部分
alwaysRun:如果设置为t rue,这个测试方法将总是运行,甚至当它依赖的方法失败时。
d a t a P r o v i d e r :这个测试方法的dat a provider 的名称

dataProviderClass:用于查找data provider的类。
如果不指定,将在当前测试方法所在的类或者它的基类 上杳找dat a provider.
法 。

如果这个属性被指定,则 da t a pr o v i de r 方法需要是指定类的 st a t i c 方
dependsOnGroups: 当前方法依赖的组列 表
dependsOnMethods :当前方法依赖的方法列表

 description enabled:当前方法的描述 当前类的方法/ 方法是否被激活
e x p e c t e d Ex c e p t i o n s:测试方法期望抛出的异常列表。如果没有异 常 或 者 抛 出 的 不 是 列 表 中 的 任 何 一 个 , 当前 方 法 都 将 标 记 为 失 败.
groups:当前类/ 方法所属的组列表

invocationCount:当前方法被调用的次数

successPercentage :当前方法期望的成功率
sequent ia l:如 果 设 置 为 t r u e , 当前 测 试 类 上的 所 有 方 法 保 证 按 照顺序运行。甚至测试们在par al lel=” true〞的情況下。

这个属性只能用于类级别,如果用于方法级别将被忽略。
timeOut:当前方法容许花费的最大时间,单位亮秒。

threadPoolSize:当前方法的线程池大小。方法将被多线程调用, 次数由 i nv oc at i oncoun t 参数指定
注意:如果invocationCount 没有指定则这个属性将被忽略
注:
上面是TestNG中用到的annotation 列表,从中我们可以看到TestNG提供 的一 些特性
1. before方法和after方法带 来 了足 够 丰 富 的 测 试 生 命 周 期 控 制

2. dependsOnGroups/dependsOnMethods 提供了依赖检查机制,并可以严格 控制 执行顺序
3. DataProvider 使得对同一个方法的测试覆盖变的非常轻松,非常适合进 行边界测试,只要给出多种测试数据就可以针对一个测试方法进行覆盖
4. expectedExceptions 使得异常测试变的非常轻松
5. invocationCount/threadPoolsize 终于可以简单的直接进行多线程测 试了,这个绝对是junit 的超级弱项,回想junit 中那个万恶的
S y s t e m. e x i s t ( o ) . . .
6. timeout 终于不用死等然后手工强行关闭测试,TestNG想的太周到了

 
 TestNG官方文档中文版(3)-testng. xml

Tes tNG的官方文档的中文翻译版第3章,原文请见

http://testng.org/doc/documentation-main.html

3 - testng. xml
调 用 T e s t NG 由 几 种 不 同 方 法 :

* 使用testng.xml 文件
* 使用ant
* 从命令行
这节描述tes tng. xml 的格式 (文档的后面会讲到ant 和命令行)。
当前testng. xml 的DTD文件可以从官方找到:h t t p : / / t e s t n g . o r g / t e s t n g - 1 . 0 . d t d 。 (为 了 方 便 使 用 , 你 可 能 更 喜 欢 浏 览 H T M 版 本)
下面是testng. xml 文件的一个例子:

<!DOCTYPE suite SYSTEM "http://testng. org/testng-1. 0. dtd" >
«suite name="Suitel" verbose="!" >
<test name="Nopackage" >
<classes>
moc.n ‹class name="NoPackagelest"
</classes) </test>
<test name="RegressionI" ‹classes
<class name="test. sample. ParameterSample" <class name-"test. sample. ParameterTest" />
</classes)
</test> (suite>

你可以指定包名替代 类名:

<!DOCTYPE sui te SYSTEM“http://testng. org/testng- 1.0.dtd” >
 <suite name="Suitel" verbose="1" › <test name-"Regression!"
<packages>
<package name="test. sample" />
</packages› </test>
</suite>

在这个例子中,TestNG将在包test .sample中查找所有的类,并只保留带 有 T e s t NG a n n o t a t i o n 的 类 。
你同样可以指定包含或不包含的组和方法:

<test name="Regression!" <groups)
(run>
«exclude name="brokenTests"
<include name="checkinTests" </run>
</groups>
<classes)
<class name="test. IndividualMethodsTest"›
<methods>
‹include name="testMethod" /›
</methods›
</class)
</classes>
</test>

        你同样可以在tes tng. xml 中定义新的组,指定属性的额外详细情况,比如 是 否 并 行 运 行 测 试 , 使 用 多 少 线 程 , 是 否 运 行 j u n i t 测 试 , 等 等 .• .

        请查看DTD文件了解完整的特性列表。

 T e s t NG 官 方 文档 中 文 版 ( 4 ) - 运 行 TestNG

4-运行TestNG
T e s t NG 可 以 以 不 同 的 方 式 调 用 :

* Command line
* ant
* Eclipse
* IntelliJ's IDEA
1) 命 令行

假设你已经将 TestNG加入到class path,调用TestNG最简单的方法事下
面的:
java org. testng. TestNG testng1. xml [testng2. xml testng3. xml .. 〕
必须指定最少一个描述你试图测试的TestNGsuite的xml 文件。另外,下 面的命令行参数可以使用:
命 令行 参数 列 表

选顼

参数

文档说明

-d

(test-output)

一个目录

生成报告的目录

-sourcedir

 

分号隔开的目录列表

 


带有javadoc 注 释的测试源文件目录.这个选项只在使用 javadoc 类型的annotation 时才有效 (例 如 ” s r c / t e s t " o r "src/test/org/testng/eclipse-plugin;src/test/org/testng/testng").

-testclass

 

可以在cl asspath路径中找到的逗号分隔的类列表

 号分隔的类文件列表(例如“org. foo. Test1, or g. foo. test2”).

-groups

逗号分隔的组列表

要运行的组列表 ( 例 如 “ v i n d o ws , l i n u x , r e g r e s s i o n ” ) .

-excludegroups

逗号分隔的组列表

不想包含在这 次运行中的组列表

 -testrunfactory

 

可以在classpath中找到的ja va 类

指定测 试的runner•这个类需要实现接又org. testng. ITestRunnerFactory•

 -listener

可 以在 c l a s s pa t h 路径中找到的逗号分隔的类列 表

指定测试的listener.这个类需要实现接又org. testng. ITestListener

-paral lel

methods tests

如果指定,设置 运行测试时如何使用并发线程的默认机制. 如果不设置,默认机制是完全不使用 并 发 线 程 。 这 个 设 置 可 以 被 s u i t e 定 义 覆 盖.

 -threadcount

并发测试运行时默认使用的线程数

用于设置 并发测试时默认的线程数,只在并发模式被选择时才生效 (例如,打开

- paralle1选项).这个设置可以被suite定义覆盖•

- suitename

 

测试套件使用的默认名称

指定在命 令行上定义的测试套件的名称。如果suite.xml 文件或源代码指定了另外 一个不 同的套件名称,这个选项将被忽略。可以创建带空格的套件名称, 如果在名称 前后加双引1号如"Like thi s“.

-testname

测试使用的默认名称

指定在命令行 上 定义的测试的名称。如果suite. xml 文件或源代码指定了另外 一个不同的测试名 称,这个选项将被忽略。可以创建带空格的测试名称,如果在名称前后加双引号 如"Like this"

- r e p o r t e r 

 扩 展 配 置 用 于自定 义报 告 l i s t e n n e r .


类似

- listener 选项,除了容许reporter示例上由javabean形式的配置.

例 如 :- r e p o r t e r

com. test.MyReporter:methodFilter=*insert*, enableFiltering=tru

可以通过不带任何参数直接调用TestNFG 来获得这个文档。 可以将命令行开关写到txt 文件中,例如c comand. txt,然后告诉TestNG 使用这 个 文件 类找到 参数 :
C:> more c: command. txt
- d test-output testng.xml
C:> java org. testng. TestNG @c: command. txt 另外,可以通过 jvm的命令行来传递参数给TestNG,例如
java -Dtestng. test. classpath="c:/build;c:/java/classes:" org. testng. TestNG testng. xmI
T e s t NG 能 够 理 解 的 参 数

testng. test. classpath
分号分隔的包含测试类的一 系列目录 如果这个属性被设置,TestNG将使用它替代从class path 来查找测试类.如果 你正在使用在xml文件里面的包标签并且在classpa th路径中由很多类市大部分 都不是测试类的时候比较方便

举例:
javaorg. testng.TestNG-groupswindows,linux-testclassorg. test.MyTest 注意ant 任务和testng.xml容许用更多的参数来启动TestNG(包含的方法, 指定的参数,等等),因此可以认为命令行适用于学习Tes t vG并且想快速入门。

指定的参数,等等),因此可以认为命令行适用于学习Tes t vG并且想快速入门。

2) Ant
可以这样定义TestNG的ant 任务: <taskdef resource="testngtasks"
classpath="testng. jar ”/>
这 个 任 务 运 行 T e s t N G 测 试 , 并 且 通 常 是 在 单 独 的 j v n 中 。 接 受 下面 的 属 性 :

属性名

描述

是否必须

annotat ions

 

宇 符 串 ” J D R 〞或 者 ” J a v a d o c ” . 定 义 测 试 适 用的注释类型•如果使用” Javadoc”,则需要同时指定”sourcedir”

 


不 是 必 须 . 如 果 适 用 j k d 5 则 默 认 为 〞J D K 〞, 如 果 适 用 j d k 1 . 4 则 默 认 为 ” J a v a d o c ”

classfilesetref

要运行的测试类的Fileset 结构的引用

classpath

要运行的测试的PATH- 1ike 结构

classpathref

要运行的测试的PATH- 1ike 结构的引用

d u m p C o m m a n d

打 印 T e s t NG 启 动 命 令 。

不 是 必 须 ,

默认false

enablessert

开启 JDK1. 4的断言.

不是必领,

默认true

failureProperty

失败发生时要设置的属性的名称

只有 hal tonfailure没有设置时才有效

不是必须,

hal tonfailure

 

如果测试运行期间发生失败,停止构造过程

不 是 必 须,默 认 f a l s e

haltonskipped

 

如果发生至少一次测试跳过,停止构造过程

不 是 必 须 ,默 认 f a l s e

groups

 

要运行的组列表,空格或逗号分隔

excludedgroups

排除在外的组列表,空格或逗号分隔

jvm

使用的 jvm,将被Runtime. exec( 运行

java

listeners

逗号或空格分隔的全路径类列表,需要实现 org. testng. ITestListener 或org. testng. IReporter

不是必须

outputdir

报告输出目录


不是 必 须,默 认 输 出 到 t e s t - o u t p u t .

skippedProperty

当发生测试被跳过时设置的proper ty的名称. 只有当hal tonskipped没有设置时才使用

不是必须

sourcedir

用 于 j d k 1 . 4 测 试 的 P A T H - I i k e 结 构 (使 用 JavaDoc 形式的annotations)

s o u r c e d i r r e f

用 于j d k 1. 4 测 试 的 P A TH- 1 i k e 结 构 的 引 用 (使 用 J a v a D o c 形 式 的 a n n o t a t i o n s )

suiteRunnerClass 

 TestNG启动器的全路径名称

 


不是必须

标签:中文版,TestNG,文档,测试,Test,testng,方法,public,测试方法
From: https://blog.51cto.com/u_15834920/8031975

相关文章

  • TestNG+Webdriver 页面自动化详解
    最近学习了一下TestNG+Webdriver的页面自动化,虽然中间遇到了很多问题,也走了不少弯路,不过最终还是运行起来了。下面就详细讲解一下,如何去配置环境及编写测试用例!环境配置1,eclipse+jkd的安装这是基本的开发环境,具体的配置在此就不累述了,网上有很多相关文档,请自行查阅。2,TestNG......
  • TestNG的基本传参使用
            万事开头难,其实开过头后也不容易。测试方面的技术好多啊,多的像天上的繁星,一.俩.仨.四个…在有限的时间里,想做最多的了解,只能从最实用的着手,去除教条式的金科玉律。于是,一个切入点蹦了出来,那就是介绍号称下一代Java测试技术的TestNG。其实这个nextgeneration也只......
  • 基于Python的猫狗宠物展示系统-计算机毕业设计源码+LW文档
    摘 要 随着时代的发展,人们对宠物也越来越重视,近些年来我国的宠物产业也发生了翻天覆地的变化,但是很多人在出去宠物的时候不知道去哪里宠物,在预订酒店和机票的时候也没有一个综合性的宠物网站,为了让人们的宠物变的更加的方便,为此我开发了本基于Python的猫狗宠物展示系统本基于......
  • Nacos相关技术文档&Golang操作Nacos实现配置监听的代码
    Nacos相关技术文档Nacos中文文档~~~(三)Nacos开发教程之服务数据持久化(四)Nacos开发教程之SpringCloud集成服务注册(参考,后续用go实现)(五)Nacos开发教程之SpringCloud集成配置管理(参考,后续用go实现)(六)Nacos开发教程之后台系统使用~~~Mac-M1电脑本地使用docker搭建Nacos-Server参考:http......
  • 多款国产操作系统安装数据库干货文档汇总(含Oracle/MySQL/国产数据库等)
    随着国产化的逐步推进,越来越多的企业选择将数据库安装在国产操作系统上。为帮助大家了解国产操作系统上的数据库成功搭建案例与搭建方式,本文整理了墨天轮数据技术社区上用户分享的实操文档,涵盖银河麒麟、中标麒麟、统信UOS、openEuler等常见的国产操作系统,数据库以Oracle为主,此外......
  • 使用pandas模块将excel文档两列转换为字典
    一个名为err_code.xlsx的文件,打开里面内容是: 一共有几百行这样的数据。我们的需求是将其变为这种字典格式,key、value、和注释: 可以借助pandas模块来进行。脚本如下:importpandasaspddf=pd.read_excel('err_code.xlsx')countrymap=dict(zip(d......
  • bilibili B站:【文档向】CMake基础知识 - 原作者笔记Markdown风格
    视频摘自B站:https://www.bilibili.com/video/BV1hz4y1H7YA笔记摘自:https://gitee.com/yanmu_ym/cpp[TOC]#预备知识##CMake是什么CMake是一个管理代码构建的工具。与平台和构建系统无关。最初CMake只用于生成不同版本的Makefile。现在CMake可以生成不同构建工具构建文件,也可......
  • bilibili B站:【文档向】CMake基础知识 - 原作者笔记
    视频摘自B站:https://www.bilibili.com/video/BV1hz4y1H7YA笔记摘自:https://gitee.com/yanmu_ym/cpp目录预备知识CMake是什么环境搭建与学习准备前置条件Ubuntu安装CMakeWindows安装CMake学习材料CMakeTutorial第一步起点练习1最简单的CMake项目练习2指定C++标准练习3添加版本......
  • 白嫖在线云服务器,免费在 linux 服务器使用 docker 。 附视频+附文档
    白嫖在线云服务器,免费在linux服务器使用docker。附视频+附文档@目录前言启动Nginx案例最后视频:https://www.bilibili.com/video/BV1WN411W79V/国内互联网经过多年发展,单体应用已经无法支持我们的互联网业务,分布式、微服务架构已经是大势所趋。就算是一些小公司,也已......
  • 白嫖在线云服务器,免费在 linux 服务器使用 docker 。 附视频+附文档
    <!--@Author:JavaPub@Date:2023-10-2419:34:55@LastEditors:yourname@LastEditTime:2023-10-2423:00:26@Description:HereistheJavaPubcodebase.SearchJavaPubonthewholeweb.@FilePath:\JavaPub-Blog\docs\posts\docker\免费使用云服务器部署docker.......