1.1何爲自動化測試?javascript
是把以人爲驅動的測試轉化爲機器執行的一種過程,它是一種以程序測試程序的過程。換言之,就是以程序實現的方式來代替手工測試。java
1.2自動化測試分類python
分爲功能自動化測試和性能自動化測試linux
通常所說的自動化測試是指功能自動化測試,是經過編碼的方式,用一段程序來測試一個軟件的功能,這樣就能夠重複執行程序來進行重複測試的目的。若是一個軟件有小部分功能發生改變,只要修改一部分自動化測試代碼,就能夠重複對軟件進行測試,從而提升測試效率。web
1.3作自動化測試應該知足哪些要求?chrome
1.任務測試明確, 不會頻繁變更
編程
2.每日構建後的驗證測試
windows
3.比較頻繁的迴歸測試
瀏覽器
4.軟件系統界面穩定, 變化少
服務器
5.須要在多平臺運行相同的測試用例、組合遍歷型的測試、大量的重複測試
6.軟件維護週期長
7.項目進度壓力不太長
8.被測系統軟件開發比較規範, 可以保證系統的可測試性
9.具有大量的自動化測試平臺
10.測試人員具有較強的編程能力
一般狀況下,只要知足如下三種狀況就能夠開展自動化測試:軟件需求變動不頻繁、 項目週期較長、 自動化測試腳本可重複使用
1.4自動化測試流程
1.4.1自動化測試的介入點:
老式:通常是在系統測試階段開始介入, 多用於系統測試的迴歸測試和性能測試
新式:開發開始概要設計評審就能夠開始介入
1.4.2自動化測試流程:
可行性分析>測試需求分析(來源於測試團隊內部)>制定測試計劃>自動化測試設計>測試腳本開發> 無人職守測試>提交測試報告>腳本維護階段
1.4.3手工測試優缺點
手工測試的缺點:重複性、精確性、效率
手工測試的優勢:手工測試不可替代的地方至少包括 如下幾個方面:測試用例的設計、經驗和猜想錯誤能力、界面和用戶體驗測試、正確性的檢查、人的思惟和邏輯能力
1.5自動化測試工具
QTP:是quicktest Professional的簡稱, 是一款商業化的自動化測試工具。 提供了強大易用的錄製回放功能。 支撐B/S、 C/S兩種架構的軟件測試。
Robot Framework:是一款python編寫的功能自動化測試框架。具有良好的可擴展性,支持關鍵字驅動,能夠同時測試多種類型的客戶端或者接口,能夠進行分佈式測試執行。
Selenium: 是一款用於Web應用程序測試的工具,它支持多平臺、多語言、多瀏覽去實現自動化測試。
2.1Selenium工具簡介
Selenium是ThoughtWorks專門爲Web應用而開發的自動化測試工具, 適合進行功能測試、驗收測試,同時支持全部基於web的管理任務自動化。主要功能包括:測試與瀏覽器的兼容性,測試你的應用程序看是否可以很好得工做在不一樣瀏覽器和操做系統之上。測試系統功能,建立迴歸測試檢驗軟件功能和用戶需求。
2.2Selenium特色:
開源、免費
多瀏覽器支持:Firefox、Chrome、IE、Opera
多平臺支撐:windows、linux、MAC
對web頁面有良好的支撐
簡單(API簡單)、靈活(用開發語言驅動)
支持分佈式執行測試用例
2.3Selenium工具組成
是由幾個工具組成,以下圖所示:
①Selenium IDE 是嵌入到Firefox瀏覽器中的一個插件,實現簡單的瀏覽器錄製與回放功能。
實際場景中如何使用?
快速的建立BUG重現腳本,在測試人員的測試過程當中,發現了BUG以後能夠經過IDE將重現的步驟記錄下來,以幫助開發人員更容易的重現BUG。IDE錄製的腳本能夠轉換成多種語言,從而幫助咱們快速的開發腳本。
②Selenium Gird是一種自動化測試的輔助工具,Gird經過現有的計算機基礎設施,能加快web_app的功能測試,利用Gird,能夠很方便的同時在多臺機器上和異構環境中並行運行多個測試用例。
其主要特色:並行執行,經過一個主機統一控制用例在不一樣環境、不一樣瀏覽器下運行,靈活添加變更測試機
③Selenium RC是Selenium家族的核心工具, Selenium RC支持多種不一樣的語言編寫自動化測試腳本, 經過Selenium RC的服務器爲代理服務器去訪問應用從而達到測試的目的。Selenium RC使用分Client Libraries和Selenium Server, ClientLibraries庫主要用於編寫測試腳本, 用來控制Selenium Server的庫。
Selenium Server負責控制瀏覽器的行爲, 它主要包含3部分:Launcher、Http Proxy、Core。
其中Core是被Selenium Server嵌入到瀏覽器頁面中, 它本質是JS函數的集合, 經過對這些JS函數進行操做,實現用程序對瀏覽器進行操做。Launcher 用於啓動瀏覽器,把Core加載到瀏覽器頁面中,並把瀏覽器代理設置成爲Selenium Server的HttpProxy。
④WebDriver針對各個瀏覽器而開發, 取代了嵌入到被測web應用中的javascript, 與瀏覽器緊密集成。同時 WebDriver還利用操做系統級的調用模擬用戶輸入。
準備工具以下:
JDK安裝包: JDK1.8及以上
Eclipse 壓縮包: http://www.eclipse.org/downloads/
Selenium壓縮包: http://code.google.com/p/selenium/downloads/list,Selenium建議使用Java中的Maven下載,更方便
環境搭建就以Maven爲例,要用Maven這個插件,就得查看該插件是否已集成在本身使用的Eclipse中,查看方式以下:
Window>Preferences,查看是否有Maven文件,如有,則說明已經集成好了(或已配置好了),可使用,若沒有,則須要本身手動配置。
第一步:
1.1新建一個Maven工程,File>New>Other
1.2選擇Maven>選擇Maven Project>點擊Next
1.3彈出以下界面,默認下一便可
1.4在接下來的窗口中,選擇maven-archetype-quickstart
1.5此處須要填寫信息,包名及工程名,隨意本身填寫
1.6點擊Finish後,就會生成一個工程,以下所示:
第二步,下載Selenium須要的jar包
2.1打開該網址:http://www.mvnrepository.com/,在輸入框中輸入Selenium,點擊搜索,出現以下界面,因爲咱們配置的環境是Java+Selenium,因此選擇第一個便可
2.2版本有不少,看我的選擇,我下載的3.4.0版本
2.3點擊3.4.0,出現以下界面,把以下代碼複製到所建工程的pom.xml文件中
2.4粘貼到pom.xml文檔中,保存便會自動下載
2.5下載完成後,可查看到剛下載的Selenium中包含的jar包,以下所示:
第三步:
環境已配置完畢,就去寫第一個自動化代碼吧。在百度輸入框中輸入12306並點擊搜索,代碼實現以下:
1 package com.test.auto; 2 3 import org.openqa.selenium.By; 4 import org.openqa.selenium.WebDriver; 5 import org.openqa.selenium.WebElement; 6 import org.openqa.selenium.chrome.ChromeDriver; 7 8 public class yihuqingjiu_test_12306 { 9 10 public static void main(String[] args) throws Exception { 11 //chrom瀏覽器驅動的位置 12 System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe"); 13 //web驅動指向chrom驅動並建立對象driver 14 WebDriver driver=new ChromeDriver(); 15 //獲取網址 16 driver.get("https://www.baidu.com"); 17 //瀏覽器最大化 18 driver.manage().window().maximize(); 19 //kw是輸入框的id,12306是在輸入框中藥輸入的內容 20 driver.findElement(By.id("kw")).sendKeys("12306"); 21 //su是搜索按鈕的id 22 WebElement btn=driver.findElement(By.id("su")); 23 //點擊事件 24 btn.click(); 25 //休眠時間 26 Thread.sleep(3000); 27 //關閉頁面 28 driver.close(); 29 30 } 31 32 }
本文僅表明做者觀點,系做者@溫一壺清酒發表。轉載請註明出處:http://www.cnblogs.com/hong-fithing/