用中文寫腳本,完全棄掉IDE,就能完成java+selenium的自動化測試過程,體驗一下這神奇的過程吧。
我們先來看下面的scenario:
1.打開百度
2.輸入搜索關鍵字並點擊"百度一下"
3.在搜索結果頁面取出搜索輸入框的值進行驗證
我們來看如何實現:
1.在TestBaidu.yaml中保存好locator(保存方法在前面有介紹)
2.在TestBaidu.xml保存好測試數據
3.在TestBaidu.txt中寫上如下的腳本:
1."打開"{url}
2."頁面"{testBaidu},輸入框(baidu_input)[sendKeys]{hello world}
3."頁面"{testBaidu},[click]按鈕(baidu_button)
4."頁面"{testBaidu},取得輸入框(baidu_input1)屬性值[getAttribute]{attrValue},"返回值"{getInput}
5."對象"{Log},輸出[信息]{getInput}
6."對象"{Assert},判斷[assertEquals]{getInput,assertValue}
整個過程就完了,就可以直接運行了,在這個過程中完全沒有用到eclipse或其它的IDE,如果細心的人,應該很快能發現上面寫腳本的方式很適合於在excel或平台中使用,留給大家去擴展吧。
下面介紹一下幾個特點:
1.對於Locator的保存方式,支持參數化,比如
baidu_input:
type: id
value: %s
也就是說這個%s要是腳本中被替換掉,於是我們可以這樣使用2."頁面"{testBaidu},輸入框(baidu_input){kw}[sendKeys]{hello world},如果有多個參數要替換,用逗號隔開。
2.對於測試數據,在腳本中一般用{}符號概括,在{hello}中,如果hello在xml文件中有結點存在,則取結點的值作為數據,如果在xml文件中沒有結點存在,則數據就為hello.
3.對於有一些公共方法,要被抽象出去,抽象出來的,也放在txt中,也用中文來寫,即一個txt文件就代表一個方法,但是java是面向對象的,這些個方法要有對象,所以我把這些方法與page聯系在了一起,聯系方式為:
LinkedPages.xml:
<Pages>
<TestBaidu>
<methohd name='search' return='' linked='TestBaidu1'/>
</TestBaidu>
</Pages>
TestBaidu就是代表頁面page,里面有一個search方法,具體的實現在TestBaidu1.txt中,沒有返回值(return的值為空或者沒有return屬性)
4.當然我們也可以自已去擴展page,用代碼來寫page里面的方法,這些page放在com.test.page包下面,如果page里有search方法,LinkedPages.xml里面也有search方法,則以page里的優先。
5.支持邏輯判斷與循環,例如:
1."如果"{1}等於{1},"並且"{2}不等於{3}
-"對象"{Log},輸出[信息]{a}
-"如果"{1}等於{1}
--"循環"{i}從{1}到{3}
---"對象"{Log},輸出[信息]{i}
2."循環"{i}從{1}到{3}
-"對象"{Log},輸出[信息]{i}
提供了4個接口,接口說明:
1.Locators接口,如果你不想用yaml來保存Locators,想用DB或者其它文件,只需實現這個接口就行了
2.TestDatas接口,如果你不想用xml來保存數據,只需實現該接口就可以了
3.Linked接口,如果不想用LinkedPages.xml,也要實現該接口
4.TestCases接口,如果覺得TXT不直觀,實現一下該接口就OK了
備注:以上4個接口實現后都得在config.xml里配置一下。
如果你想實現平台,或者在領導面前炫一把,用該框架,應該會屌炸天。
下載地址:http://files.cnblogs.com/zhangfei/Automation2.0.rar
交流平台:QQ群254285583, 174527142
