WAT的使用方法:
1.当创建完project "Demo"后,在testcase文件夹下会创建一个Demo的文件夹,Demo文件夹下会出现如下的文件:conf.yaml,Demo.rb,Demo.yaml,ExpectedData.yaml,TestData.yaml
2.conf.yaml的作用
conf.yaml创建时为空,
conf.yaml文件是对config/conf.yaml文件的扩展,在conf.yaml里可以自定义配置选项,如果conf.yaml与config/conf.yaml的配置项相同,config/conf.yaml里的配置项则会被conf.yaml里的配置项覆盖。
在测试方法里,即Demo.rb文件里的测试方法里,调用conf.yaml与config/conf.yaml里的配置项的方法为:ConfigData("配置项名称")。
3.Demo.yaml的作用
Demo.yaml是存放页面元素对象的文件。
Demo.yaml文件在初始时不为空,显示了存放页面元素对象的两种方式。
第一种方式中,type是必填项.parent结点,如果有parent,则需加上,如没有,则不加、。比如@ie.div(:class,"test").div(:index,1),示例为:
test1:
type: div
class: test
test2:
type: div
index: 1
parent: test1
test1没有parent,所以不必要加上该结点,test2有parent "test1",所以需要加上parent,value为test1。
第二种方式中,写法为:
test2: div(:class,"test").div(:index,1)
我们在项目中,其实第二种方式用的比较多。
第三种方式,在Demo.yaml文件中没有演示出来,用法是:(第三种方式配合第二种方式,这样效果会更好)
test1: div(:class,"test")
test2: %test1%.div(:index,1)
在测试方法里,即Demo.rb文件里的测试方法里,调用Demo.yaml的页面元素对象的方法为:AutoTest("test1"),AutoTest("test2").
4.TestData.yaml的作用
TestData.yaml是存放测试数据的文件,格式一定要严格按照文件中已定义好的格式
由于该框架是数据驱动的模式,数据驱动的概念是指脚本或测试方法根据配置的数据的条数来循环运行,所以除common结点外,其它的结点是脚本中测试方法的名称,比如在Demo.rb文件中有个test_Demo方法,所以在TestData.yaml的配置:
- test_Demo:
description: test for 123
inputValue: 123
- test_Demo:
description: test for 234
inputValue: 234
则test_Demo方法会运行两次,在脚本中用inputValue的值时,第一次是123,第二次为234.
如果在TestData.yaml里的结点与Demo.rb文件中的测试方法名不一致,则会没有测试方法被运行。
TestData.yaml中的common结点,是配置的测试方法中的数据的公共结点,common结点里的数据,在配置的测试方法中都可以被使用,如果测试方法中与common中存在相同的数据,则common结点中的数据会被覆盖。比如:test_Demo中的description的value值会覆盖common中的description的value值。TestData.yaml文件中必须存在三个数据结点:private,smoking,description。否则会报错。
private,smoking是两种运行模式,在config/conf.yaml中RunTimeModule的值如果为private,则会运行private的值为y的测试方法,比如:
- test_Demo:
private: y
description: test for 123
inputValue: 123
- test_Demo:
private: n
description: test for 123
inputValue: 123
则test_Demo只会private被标记为y的一次,标记为n的则不会被运行
description的数据则会被显示在报告中。
在testcase文件夹下面有个GlobalData.yaml,也是存放测试数据的,里面的数据会被用到所有的project中,里面的数据如果与project中TestData.yaml的测试数据一样时,则会被project中TestData.yaml的测试数据覆盖。比如在一个系统中,可能都会有用户名与密码,则放在GlobalData.yaml中即可,存放数据的格式为:
loginname: test1
password: test
总结:如果GlobalData.yaml存在loginname: test1,在ExpectedData.yaml的common结点下存在loginname: test2,在test_Demo下存在loginname: test3,则在脚本中调用loginname时,值为test3.
测试数据在test_Demo中的调用方式为:TestData("loginname")