TESTNG听录音笔记
1. 是什么:有了它可以管理测试用例,做数据驱动,多线程模式下case的鲍旭类型
2. 如何生成testng的xml文件 -- based on Eclipse
Eclipse里装上testn插件,指定classname 线程数,自动申城xml
基本的TestNG脚本,true,是有序的。
如果配置不支持并行,threadcount不要设置为2. 这要求case可以并行运行,这时有依赖的方法就会失败。并行模式有两种选择,一个是类,一个是方法,如果选择了方法,如果count=2,则这两个方法同时吊起来,则可能是失败的。
parallel:并行模式,包括方法和类两种。
下面两个图是关于MEthod的。。。
上图,Newtest测试类中,只选择了两个测试方法,此时,g不是NewTest组的,c属于,那么runcase时该如何运行呢?是交集模式还是并行模式?此处会按照include方法名字去run。当groups和method标签共存时,以method为准。用在如下场景:当时间紧迫,需要并行run case时,怎样处理有依赖关系的testcase呢?看下图
singleThreaded=true 就可以保证方法级别并行运行的case也先后顺序执行,在需要这么处理的case方法后面加上这个就可以了
testNG分组:基于@test中的一个属性分组。
定义了两个组 @Test(groups={"functiontest"}) 这是测试类,
public class NewTest{}
@Test(groups = {"P1"}) 这是常见的写法,case中定义的级别是P1的
public void test2(){
}
@Test表示当前所有的测试方法,都属于functiontest组,而test2方法既属于这个组,又属于P1组。
那么组如何指定呢? -- 回到xml文档中
include name = 中指定的就是组,这里支持正则表达式
更技术的:Method,很先进,见上面两个图
数据驱动:
dataProvider = "dp" 提供数据提供者的名字,这个方法有两个参数,
上图是dp的定义 数据分层
这个是分层,这么使用testdata.class时,dataprovider需要是静态的,否则运行时会报错
dp1(Method method )用于得到测试方法名字
未完待续