qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          基于Node.js的驗收測試框架—Nightwatch.js

            Nightwatch是一套新近問世的基于Node.js的驗收測試框架,使用Selenium WebDriver API以將Web應用測試自動化。它提供了簡單的語法,支持使用JavaScript和CSS選擇器,來編寫運行在Selenium服務器上的端到端測試。
            不同于行為驅動測試(BDD)和單元測試獨立運行并使用模擬/存根,端到端測試將試著盡可能從用戶的視角,對真實系統的訪問行為進行仿真。對Web應用來說,這意味著需要打開瀏覽器、加載頁面、運行JavaScript,以及進行與DOM交互等操作。Nightwatch嘗試著使用語法糖(syntax sugar)來實現這一目標:
          this.demoTestGoogle = function (browser) {
          browser
          .url(“http://www.google.com”)
          .waitForElementVisible('body', 1000)
          .setValue('input[type=text]', 'nightwatch')
          .waitForElementVisible('button[name=btnG]', 1000)
          .click('button[name=btnG]')
          .pause(1000)
          .assert.containsText('#main', 'The Night Watch')
          .end();
          };
            除簡化了編寫自動化測試的過程外,Nightwatch還能夠與持續集成的流水作業結合,從而對開發中的系統進行完整的診斷:我們可以從Nightwatch網站找到當前提供特性的列表:
            簡單但強大的語法。只需要使用JavaScript和CSS選擇器,開發者就能夠非常迅捷地撰寫測試。開發者也不必初始化其他對象和類,只需要編寫測試規范即可。
            內建命令行測試運行器,允許開發者同時運行全部測試——分組或單個運行。
            自動管理Selenium服務器;如果Selenium運行在另一臺機器上,那么也可以禁用此特性。
            支持持續集成:內建JUnit XML報表,因此開發者可以在構建過程中,將自己的測試與系統(例如Hudson 或Teamcity等)集成。
            使用CSS選擇器或Xpath,定位并驗證頁面中的元素或是執行命令。
            易于擴展,便于開發者根據需要,實現與自己應用相關的命令。
            目前,Selenium是JavaScript的世界里驗收測試方面最流行的工具之一,類似的還有PhantomJS。
            二者都有其獨到的方法:Selenium使用其WebDriver API,而PhantomJS使用無界面的WebKit瀏覽器。它們都是非常成熟的工具,都具有強大的社區支持。
            它們與Nightwatch之間最大的不同,主要是在于語法的簡易度以及對持續集成的支持。與Nightwatch相比,Selenium和PhantomJS都擁有更加冗長的語法,這會讓編碼變得更龐大,而且不支持從命令行中進行開箱即用的持續集成(JUnit XML或其他標準輸出)。
            盡管如此,Nightwatch還處于不斷演進的道路上,以成為更加成熟工具的。在Google Groups中,WD.js(另一個基于Node.js的驗收測試框架)的作者Sebastian Vincent針對處理回調所選擇的實現給出了一些批評意見:
            當涉及異步調用時,基于鏈式的隊列是個糟糕的模式。如果開發者想要做一些復雜的事情,或是組合一些東西,最終將不得不手動停止隊列以插入任務(但也許Nightwatch會證明我的看法是錯的)。
            Vincent還針對Nightwatch和Selenium服務器之間使用的底層通信協議,指出了其中存在的不足之處:
            Nightwatch離成熟還遠,看看HTTP協議,GET和DETLETE中沒有重試、沒有超時設置,也沒有內容/長度+內容類型。在非直接情況下(例如Sauce-connect或排隊),它很快就會出現問題。
            然而,哪怕有這些批評的聲音,Nightwatch還是入選了GitHub本月最熱門代碼倉庫。另外該團隊運營著一個Twitter賬號,聽取來自社區的反饋并與開發者互動。

          posted on 2014-03-24 10:49 順其自然EVO 閱讀(588) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2014年3月>
          2324252627281
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 扎赉特旗| 扎鲁特旗| 曲沃县| 阿克苏市| 修水县| 左权县| 云安县| 三河市| 清流县| 东兴市| 潮安县| 西青区| 兴国县| 屏东市| 白朗县| 南京市| 怀仁县| 钦州市| 鄂尔多斯市| 南宁市| 丰县| 马龙县| 南乐县| 肇东市| 永川市| 高淳县| 石渠县| 香格里拉县| 伊金霍洛旗| 那坡县| 沙坪坝区| 赫章县| 吉木萨尔县| 无棣县| 仪陇县| 常熟市| 嫩江县| 墨竹工卡县| 阳曲县| 治多县| 西贡区|