------Web自动化测试之Webdriver+TestNG--从零到熟练(系列)
TestNG用来管理测试用例的是testng.xml配置文件,我们可以通过配置这个文件来达到组织测试用例,输出测试报告的效果。下面我们先详细讲解一个这个配置文件,然后再讲解测试报告的输出。
6.1 testng.xml文件的配置
Testing.xml是TestNG的配置文件,拥有强大的功能,可以根据需要来配置测试用例的运行。具体参数有:
name |
suite的名字(他会出现在测试报告中) |
junit |
是否以junit模式运行 |
verbose |
在控制台中如何输出,这个设置不影响html版本的测试报告 |
parallel |
是否使用多线程测试(可能加速测试) |
configfailurepolicy |
是否在运行失败了一次后继续尝试或跳过 |
thread-count |
如果设置了parallel,可以设置线程数 |
annotations |
有‘javadoc’的时候寻找,没有的话使用jdk5的注释 |
time-out |
在终止method (如果parallel="methods") 或者 test (如果parallel="tests")之前设置以毫秒为单位的等待时间 |
skipfailedinvocationcounts |
是否跳过失败的调用 |
data-provider-thread-count |
提供一个整数线程池的范围为了使用parallel data |
object-factory |
一个继承IObjectFactory的类,被用来实例化测试对象 |
allow-return-values |
如果设置true,将会运行测试用例并返回值 |
详细讲解,请参考:http://www.cnblogs.com/choosewang/articles/3079983.html,而各个参数的具体取值及结构,可以参考:http://testng.org/testng-1.0.dtd.php。而这里我们只讲最常用的几个参数。
(1)Testng默认内容讲解
当我们创建一个TestNG类后,会默认创建一个testng.xml文件,文件的内容如下:
Ø
Suite name标识测试集的名字,这个名字会在测试报告中显示。
Ø Suite parallel 是否并行运行测试用例,这个在多线程中会用到,false为不允许多线程。
Ø Test name 测试工程的名字,一个测试工程可以包含多个测试类,一个测试类中可以包含多个测试方法。
Ø 通常我们添加测试方法的办法是添加classes节点,当然也可以添加更多的测试工程和测试集。
例如:
(2)Testng常用参数讲解
上面默认的参数已经讲解过了,此处不在累述,下面几个参数也是比较常用的:
Ø
Configfailurepolicy
设置如何处理失败的测试用例,取值为skip |
continue
,skip为失败后跳过这个测试用例;continue
为失败后重跑这个测试用例。由于一些儿测试用例会遇到偶然的现象导致失败,所以我们通常会设置成失败重跑。
Ø thread-count 线程数,当我们设置了并行运行后,这里设置并行的数量。并行的单位可以是测试用例,测试类或是测试实例等。
Ø skipfailedinvocationcounts 是否跳过失败的调用,如果不跳过,可能会导致测试用例的死锁。
Ø preserve-order true|false测试用例是否顺序执行,如果设置成False,则测试用例随机执行。
Ø 常用的结点
Methods
节点定义在一下测试用例中测试方法有哪些儿执行include,哪些儿不执行exclude。虽然我们建议在一个测试用例中要尽量包含少的测试方法,但是有些儿测试用例中也会包含很多相关的测试方法,有些儿测试场景不适合执行一些儿方法,所以就可以用此节点来进行定制。
(3)一个常用的Testng.xml实例
Testng.xml的结点太多了,有很多我们用不到,请看一个比较完成整的讲解:http://blog.csdn.net/five3/article/details/25907693
而我们现在要讲解的是一个比较简单,但是很实用的实例,具体内容如下:
Ø Suite相关:此suite名字为TestDemo,包含了一个测试工程Test,四个测试文件。
Ø Suite设置:测试用例以test为单位并行执行,一次并行3个测试用例,测试用例执行的顺序是顺序执行,遇到失败的测试用例进行重跑,遇到失败的调用则跳过。
Ø 在HelloTom测试用例中包含了两个测试函数,但是在此测试集中,只执行saygoodbye,havelunch不执行。
这些设置虽然很少,不过可以应付日常的测试需要了,如果有特殊化的需要,可以去网上查询,相关的文章相当多的。
(4)我们第五章中讲到了两个测试用例LoginDemo.java和LoginTest.java,此时我们的Testng.xml应该写成如下:
通过这样填写我们的Xml配置文件,就可以一起执行这两个测试用例了,运行的方法是:右击“testng.xml”->”Run As”à”TestNG suite”,则程序就会顺序执行这两个测试用例文件,并输出对应的结果。