WAT的使用方法:
1.當創(chuàng)建完project "Demo"后,在testcase文件夾下會創(chuàng)建一個Demo的文件夾,Demo文件夾下會出現如下的文件:conf.yaml,Demo.rb,Demo.yaml,ExpectedData.yaml,TestData.yaml
2.conf.yaml的作用
conf.yaml創(chuàng)建時為空,
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是存放測試數據的文件,格式一定要嚴格按照文件中已定義好的格式
由于該框架是數據驅動的模式,數據驅動的概念是指腳本或測試方法根據配置的數據的條數來循環(huán)運行,所以除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的測試數據覆蓋。比如在一個系統(tǒng)中,可能都會有用戶名與密碼,則放在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")