用 Selenium 自動化驗收測試(三)

發表于:2008-07-09來源:作者:點擊數: 標簽:seleniumSelenium自動化驗收
關鍵字:測試 driven 模式 driven Selenium 腳本是用多種受支持的編程語言中的一種編寫的 —— 目前可用的有 Java 、Ruby 和 Python 驅動程序。這些腳本在瀏覽器之外的一個單獨的進程中運行。驅動程序的任務是執行 測試 腳本,并通過與運行在瀏覽器中的 brow
關鍵字:測試

driven 模式

         driven Selenium 腳本是用多種受支持的編程語言中的一種編寫的 —— 目前可用的有 Java、Ruby 和 Python 驅動程序。這些腳本在瀏覽器之外的一個單獨的進程中運行。驅動程序的任務是執行測試腳本,并通過與運行在瀏覽器中的 browser bot 進行通信來驅動瀏覽器。驅動程序與 browser bot 之間的通信使用一種簡單的特定于 Selenium 的連接語言 Selenese。

         driven 腳本比 test runner 腳本更強大、更靈活,可以將它們與 xUnit 框架集成。driven 腳本的缺點(與 test runner 腳本相比)是,這種腳本編寫和部署起來更復雜。這是因為驅動程序必須執行以下任務:

  • 啟動服務器。
  • 部署所測試的應用程序(AUT)。
  • 部署測試腳本。
  • 啟動瀏覽器。
  • 發送命令到 browser bot。
  • 驗證 browser bot 執行的命令的結果。
             driven 腳本更依賴于應用程序運行時環境。例如,Java 驅動程序使用一個嵌入式 Jetty 或 Tomcat 實例來部署所測試的應用程序。目前,已經有人在致力于將 Selenium 集成到 Ruby on Rails 中,但是在我撰寫本文之際,這個集成版本還沒有被發布。

             清單 4 摘自一個使用 Ruby 驅動程序的 driven 測試腳本。注意,我省略了用于啟動服務器和瀏覽器的步驟,這個測試腳本代碼幾乎和 test runner 腳本一樣簡單。

     

    清單 4. 使用 Ruby 驅動程序的例子

        .
        .
        puts selenium.open('/logout.html')
        puts selenium.verify_location('/index.html')
        .
        .
     
    現實中的需求

             在接下來的兩節(現實中的需求 和 現實中的用例)中,我將描述如何在現實場景中使用 Selenium,并針對用 Ruby on Rails 和一點兒 Ajax 技術編寫的一個簡單的股票報價查看器應用程序編寫 Selenium 測試用例。雖然這個應用程序是用 Ruby on Rails 編寫的,但是也可以將這個例子應用于任何 Web 應用程序,因為測試腳本是按 test runner 模式以 HTML 編寫的。這個示例應用程序是用 Ruby 1.8.3 和 Ruby on Rails 0.14.2 測試的,但是它也可能可以使用更舊的或更新的版本。

             如果有 Linux,那么發行版中通常已經包括了 Ruby。在命令提示符下運行 ruby -v,檢查您所擁有的版本。對于大多數平臺,都可以在 http://www.ruby-lang.org/ 上找到一個 Ruby 發行版。

             接下來的步驟是通過 RubyGems 打包系統安裝 Ruby on Rails。為此,只需執行 gem install rails --include-dependencies。在某些平臺上,必須執行一些額外的步驟,所以請訪問 Ruby on Rails 網站,以獲得更多細節。

             在我撰寫本文之際,目前可用的 Selenium 版本是 0.6。我已經將它集成在示例應用程序中(見 下載 小節),我的做法是從 http://selenium.thoughtworks.com/ 下載 Selenium Core 包,然后將名為 selenium 的文件夾復制到用于靜態內容的文件夾。在 Ruby on Rails 應用程序中,這個文件夾的名稱是 public。在 J2EE Web 應用程序中,可以將 selenium 文件夾放在 Web 應用程序的根目錄或 WAR 歸檔文件中。

             最后一步是下載示例應用程序。從 下載 小節中獲得這個包。解壓應用程序,并打開一個命令提示符。然后轉入應用程序被解壓到的那個目錄。為了啟動應用程序,運行 ruby script/server。應該看到 Rails 成功啟動了,如 圖 1 所示。

     

    圖 1. 從命令提示符下運行 Ruby on Rails
    從命令提示符下運行 Ruby on Rails 
    現實中的用例

             在本節中,我將列出示例應用程序的用例。通過這些簡化的用例,可以編寫模擬用戶所執行步驟的驗收測試,并驗證這些步驟的結果是否與預期相符。股票報價應用程序實現了以下四個用例:

    • 登錄
    • 查看股票
    • 查看股票細節
    • 退出

             實現這些用例的代碼已經編寫好了;可以在 app 目錄中找到該代碼,測試用例在 public/selenium/tests 文件夾中。

    登錄用例

             大多數人都知道登錄頁面是如何工作的 —— 輸入用戶名和密碼,然后將數據提交到服務器。如果憑證有效,就可以成功登錄,并看到受安全保護的資源。在示例應用程序中,這個測試用例包含以下用戶操作和斷言,必須將它轉換成一個 Selenium 測試用例:

    1. 單擊登錄鏈接。
    2. 驗證系統是否要求用戶進行登錄。
    3. 輸入用戶名。
    4. 輸入密碼。
    5. 按下登錄按鈕。
    6. 驗證是否登錄成功。
      圖 2 展示了用于這些需求的 Selenium 測試用例。注意,我是在運行測試之后截取屏幕快照的。綠色箭頭表示成功地通過驗證的斷言。

     

    圖 2. 登錄和查看股票測試用例
    登錄和查看股票測試用例 

  • 原文轉自:http://www.anti-gravitydesign.com

    国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97