• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 使用Sahi測試Dojo應用(4)

    發表于:2015-01-30來源:uml.org.cn作者:不詳點擊數: 標簽:Sahi
    findByLabel的實現 function findByLabel($labelText, $className) { var $label = _label($labelText) var $wid = getAttribute($label, for) _set($id, findIdByWID($wid)) var $div = _byId($id) return new $

      findByLabel的實現

      function findByLabel($labelText, $className) {

      var $label = _label($labelText)

      var $wid = getAttribute($label, "for")

      _set($id, findIdByWID($wid))

      var $div = _byId($id)

      return new $className($div)

      }

      

      function findIdByWID($wid) {

      var $widget = dojo.query("[widgetid='" + $wid + "']")[0]

      return $widget.getAttribute("id")

      }

      

      通過元素label標識元素的原則通過findByLabel函數實現。它有兩個參數,第一個是label的文本內容,第二個是目標widget的實現類。實現原理很簡單。label元素的for屬性值就是widget的widgetid的值。因此,我們通過widgetid就可以找到widget元素。但事實上,從下面大家看出來我們是先利用的dojo.query找到了元素對應的id,然后通過_byId獲得widget元素。為什么用這種迂回的方法呢?根據Sahi的文檔,理論上我們是可以通過修改concat.js文件增加widgetid查找屬性(具體參見 http://sahi.co.in/w/tweaking-sahi-apis)可以實現利用_div,_table或者_span等函數直接獲得 widget元素。不幸的是,當前版本中存在的一個bug導致自定義屬性不能被識別。所以,目前只能先通過widgetid找id的方法迂回解決。另外,值得一提的是因為findIdByWID函數用到了dojo的庫函數,因此它被定義在browser tag中。

      數據驅動

      Sahi自帶對CSV,Excel以及數據庫訪問的函數。示例代碼示范了如何使用CSV進行數據驅動測試。讓我們一起來看看 JobAppFormTests.sah中的testSimple函數。被注釋掉的部分是一般的定義測試數據的方法。_readCSVFile函數加載 testdata.csv到$data變量,它事實上一個兩維數組。_dataDrive函數能夠自動遍歷數組數據調用fillForm函數。

      function testSimple() {

      /*

      var $eduValue="masters"

      var $nameValue="my name"

      var $addressValue="Shanghai"

      var $stateValue="California"

      fillForm($nameValue,$eduValue,$addressValue,$stateValue)

      */

      var $data = _readCSVFile("./testdata.csv")

      _dataDrive(fillForm, $data)

      }

      testdata.csv內容:

      Tom, high school, Address1, Alaska

      Mike, masters, Address2, Florida

      John, PhD, Address3, Hawaii

      其他

      另外,Sahi提供了類似于JUnit的測試框架。所有以test開頭的函數都被認為是測試用例,如果有setUp和tearDown函數,它們會分別在每個測試用例運行前后執行。并且所有測試文件還是可以組織到一個.suite文件中作為一套測試用例運行。更詳細的介紹,請大家參考Sahi的官方文檔。 Sahi也能支持拖放,大家可以參考示例代碼中Slider widget的實現。文件上傳是很多Web自動化測試的局限,不過,Sahi得益于它Proxy的架構也實現了文件上傳功能。

      三.結束語

      總的來說,Sahi是一款不錯的Web自動化測試工具,尤其是它對元素關聯查找的支持以及頁面隱式等待的機制對Web2.0應用的測試是很有幫助的。希望讀者閱讀完本文能有所收獲。如果,想了解更多關于Sahi的信息,請訪問Sahi的官方網站(http://sahi.co.in/w/) 并且可以通過訪問http://www.slideshare.net/narayanraman 觀看Sahi的推廣演示文檔。如果對Sahi與Selenium的比較感興趣,可以訪問http://blog.sahi.co.in/2010/04 /sahi-vs-selenium.html 。

    原文轉自:http://www.uml.org.cn/Test/201204265.asp

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>