Selenium自動化測試介紹

    當下,自動化測試越來越成爲主流的趨勢,很多公司都已經在開始使用或者已經使用了好多年。在職場上,不管公司是否真的打算開展自動化測試、是否適合開展自動化測試,都習慣性的把自動化測試寫在招聘要求當中,在面試過程中也多多少少會問到一些。所以瞭解和學習自動化測試時非常有必要的。

    而在自動化測試領域,Selenium和QTP是市場的主流工具,但現在Selenium越來越佔據主導地位,在這裏,咱們暫不討論兩個工具的優劣,着重介紹一下基於Selenium的自動化測試。

1、Selenium簡介

    Selenium 是 ThroughtWorks 公司一個強大的開源 Web 功能測試工具系列,包括 Selenium-IDE、Selenium-RC、Selenium-Webdriver 以及 Selenium-Grid。其中,Selenium-IDE和Selenium-Webdriver二者的結合使用,能夠使我們取得事半功倍的效果。

    Selenium 2.0 的主要新功能是集成了 Webdriver 的 API。Webdriver 的設計提供一個更簡單、更簡潔的編程接口以及解決的 Selenium-RC API 中的一些限制。SeleniumWebdriver 的開發是爲了更好地支持動態網頁的頁面元素可能已經更改,但本身不被重新加載的頁面。 Webdriver 的目標是提供一個設計良好的面向對象的 API、提供更好的支持,爲 Web 應用程序測試問題

 

2、自動化實施目的 :

    自動執行重複性工作量較大的迴歸測試; 

    Web系統在不同操作系統和瀏覽器下的兼容性測試; 

    與CI服務集成,作爲持續集成實踐的一部分。

自動化測試之所以能在很多大公司實施起來,就是有它適合自動化測試的特點和高的投資回報率。 

3、適用於自動化測試的情形

1. 產品型項目 

    產品型的項目,每個項目只改進少量的功能,但每個項目必須反反覆覆的測試那些沒有改動過的功能。這部分測試完全可以讓自動化測試來承擔,同時可以把新加入的功能的測試也慢慢地加入到自動化測試當中。 

2. 增量式開發、持續集成項目 

    由於這種開發模式是頻繁的發佈新版本進行測試,也就需要自動化測試來頻繁的測試,以便把人從中解脫出來測試新的功能。 

3. 能夠自動編譯、自動發佈的系統 

    要能夠完全實現自動化測試,必須能夠具有自動化編譯,自動化發佈系統進行測試的功能。當然,不能達到這個要求也可以在手工干預下進行自動化測試。 

4. 迴歸測試 

    迴歸測試是自動化測試的強項,它能夠很好的確保你是否引入了新的缺陷,老的缺陷是否修改過來了。在某種程度上可以把自動化測試工具叫做迴歸測試工具。 

5. 多次重複、機械性動作 

    自動化測試最喜歡測試:多次重複、機械性動作,這樣的測試對它來說從不會失敗。比如要向系統輸入大量的相似數據來測試壓力和報表。 

6. 需要頻繁運行測試 

    在一個項目中需要頻繁的運行測試,測試周期按天算,就能最大限度的利用測試腳本,提高工作效率。 

7. 將煩瑣的任務轉化爲自動化測試。

4、不適用於自動化測試的情形 

    自動化測試不是適合所有的公司、所有的項目。 

1. 定製型項目(一次性的) 

    爲客戶定製的項目,維護期由客戶方承擔的,甚至採用的開發語言、運行環境也是客戶特別要求的,即公司在這方面的測試積累就少,這樣的項目不適合做自動化測試。 

2. 項目週期很短的項目 

    項目週期很短,測試周期很短,就不值得花精力去投資自動化測試,好不容易建立起的測試腳本,不能得到重複的利用是不現實的。 

3. 業務規則複雜的對象 

    業務規則特別複雜的對象,有很多的邏輯關係、運算關係,工具就很難測試。 

4. 美觀、聲音、易用性測試 

    人的感觀方面的:界面的美觀、聲音的體驗、易用性的測試,也只有人來測試 。

5. 測試很少運行  

    測試很少運行,對自動化測試就是一種浪費。自動化測試就是讓它不厭其煩的、反反覆覆的運行纔有效率。 

6. 軟件不穩定 

    軟件不穩定,則會由於這些不穩定因素導致自動化測試失敗。只有當軟件達到相對的穩定,沒有界面性嚴重錯誤和中斷錯誤才能開始自動化測試。 

7. 涉及物理交互 

    工具很難完成與物理設備的交互,比如刷卡的測試等。 

5、自動化測試所使用的的工具和環境

    在自動化測試代碼的開發過程中,常用的集成環境爲:Eclipse + Selenium + testng + ant + Jenkins 

 

    Eclipse:集成開發工具,用來編寫測試代碼。 

    Selenium:是 ThoughtWorks 專門爲 Web 應用而開發的自動化測試工具,適合進行功能測試、驗收測試,選用 2.0 版本 WebDriver。 

    Testng: TestNG 是一種基於註釋的測試框架,通過添加諸如靈活的裝置、測試分類、參數測試和依賴方法等特性來克服 JUnit 的一些不足之處。 

    Ant:是一個將軟件編譯、測試、部署等步驟聯繫在一起加以自動化的一個工具,大多用於 java 環境中的軟件開發,其作用是可以脫離開發環境,編譯和運行程序。 

    Jenkins: 之前叫做 Hudson,是基於 Java 開發的一種持續集成工具,用於監控秩序重複的工作,包括:持續的軟件版本發佈/測試項目、監控外部調用執行的工作。

    至於整個集成環境的搭建,將會在後續的文章中逐步分享,最終實現Eclipse + Selenium + testng + ant + Jenkins 的開發環境的完全搭建成功。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章