(一)TestNG介绍与安装
TestNG 官方网址:http://testng.org/doc/ TestNG是一个测试框架的灵感来自JUnit和NUnit,但引入一些新的功能,使它更强大和更容易使用,如: 注释。 在任意大线程池中运行测试,并提供各种策略(所有方法都在自己的线程中,每个测试类有一个线程,等等)。 测试你的代码多线程是安全的。 灵活的测试配置。 数据驱动的测试支 …
按主题探索文章、教程与工程实践。
12 篇内容TestNG 官方网址:http://testng.org/doc/ TestNG是一个测试框架的灵感来自JUnit和NUnit,但引入一些新的功能,使它更强大和更容易使用,如: 注释。 在任意大线程池中运行测试,并提供各种策略(所有方法都在自己的线程中,每个测试类有一个线程,等等)。 测试你的代码多线程是安全的。 灵活的测试配置。 数据驱动的测试支 …
通过 IntelliJ IDEA 创建 FirstTest 测试类。编写如下代码: 通过 @Test 注解一个方法为测试用例。 通过 assertEquals() 方法来断言两个数是否相等。 运行测试: 我们先感官上对TestNG使用有一个初步认识。
Test Fixture 是指一个测试运行所需的固定环境,准确的定义: The test fixture is everything we need to have in place to exercise the SUT 在进行测试时,我们通常需要把环境设置成已知状态(如创建对象、获取资源等)来创建测试,每次测试开始时都处于一个固定的初始状态;测试结果后需 …
TestNG 与 Junit 比较大的一个差异就是前者通过 testng.xml 文件来配置测试用例的执行。 testng.xml文件可以很好的控制要执行的测试用例的粒度,及各种运行策略。 目前testng.xml DTD(Document Type Definition; DTD是一种XML的约束方式。) 配置说明可以在: …
在我们创建测试用例时,大概分三个层级。 测试包(目录) 测试类(文件) 测试用例(@Test 注解的方法) 接下来介绍,如何控制这三个级别用例的执行。当然,核心还是通过 testng.mxl 文件配置。 <packages>...</packages> 定义一组测试包。 <package.../> 定义一个测试包。 name 指定测试包(目录)的名称。 指定 …
有时候我们的测试用例并不想以测试包、类和用例为单位去运行。测试用例可以有多个纬度去标识。 例如,可以根据用例的重要程度划分: 重要程度:低——>中——>高 或者,根据用例的类型划分: 类型:正常——>异常 TestNG 允许我们给测试用例贴标签。我们可以根据这些标签有选择地的跳过或执行这些用例。 接下来配置 testng.xml ,根据标签筛选要运行的测试用 …
有时候,我们希望用例按照我们要求的顺序来执行。TestNG 同样可以满足这一点要求。 通过 testng.xml 文件修改配置。 preserve-order 参数用于控制测试用例的执行顺序。如果为:true,测试用例的顺序为:testCase > testCase1 > testCase2。如果为:false ,那么默认会按照用例的名称的有字母/数字的顺序 …
当某一条用例运行失败时,其它用例必然也会失败,所以,我们就没有必要再运行其它用例了,这个时候我们就可以设置用例之间的依赖。 dependsOnMethods 来设置用例的依赖,当 testAdd1() 运行失败时,则 testAdd2() 不再被执行。 dependsOnGroups 来设置组的依赖,testAdd1()和 testAdd2() …
参数化也测试用例中常用的技巧之一,它可以增加用例的可配置性和减少相同用例的编写。 @Parameters 获取参数化数据,作为 testAdd1() 测试方法的参数。 具体的测试数据在 testng.mxl 文件中设置。 <parameter.../> 定义测试数据 name 定义数据的名字,在测试用例中通过该名字来获取对应的vlaue。 value 定义测 …
TestNG 是我接触过的唯一自身支持多程技术的单元测试框架。虽然代码级别的单元测试运行得很快,多线程的意义并不大。但如果是UI自动化测试的话运行速度就会非常慢,这个时候多线程技术就会变得很重要。 这里只介绍 testng.xml 文件,其中的使用到的测试用例,请参考前面的章节创建。 parallel 设置多线程的级别划分。 …
除了前面介绍的功能外,TestNG 还有一些使用技巧,相对比较简单,这里通过一个例子来演示。 enabled 设置用例是否跳过执行,默认为:true ,表示不跳过。false 表示跳过执行。 timeOut 设置用例运行的超时间,3000 单位为毫秒,当用例运行时间超过 3000 毫秒则判定为失败。不管用例本身是否运行失败。 …
TestNG 默认自带的有HTML格式的测试报告。这也充分说明拿它来做 UI 自动化测试的优势。 切换到 TestngTest 项目的跟目录下,通过 mvn test 命令运行测试。 在该系列教程开始前,我已经说明了整个项目基于 Maven 创建。 现在打开 ..\TestngTest\target\surefire-reports\index.html 将 …