教你如何寫框架------用中文構建腳本(更新版)


用中文寫腳本,完全棄掉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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM