1. 程式人生 > >UI自動化測試簡介及Selenium工具的介紹和環境搭建

UI自動化測試簡介及Selenium工具的介紹和環境搭建

版本 ebe 需求分析 核心 nis rep color 基於 多語

自動化測試簡介

1.1何為自動化測試?

  是把以人為驅動的測試轉化為機器執行的一種過程,它是一種以程序測試程序的過程。換言之,就是以程序實現的方式來代替手工測試。

1.2自動化測試分類

  分為功能自動化測試和性能自動化測試

一般所說的自動化測試是指功能自動化測試,是通過編碼的方式,用一段程序來測試一個軟件的功能,這樣就可以重復執行程序來進行重復測試的目的。如果一個軟件有小部分功能發生改變,只要修改一部分自動化測試代碼,就可以重復對軟件進行測試,從而提高測試效率。

1.3做自動化測試應該滿足哪些要求?

  1.任務測試明確, 不會頻繁變動

  2.每日構建後的驗證測試

  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應用程序測試的工具,它支持多平臺、多語言、多瀏覽去實現自動化測試。

Selenium工具介紹

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還利用操作系統級的調用模擬用戶輸入。

Java+Selenium環境搭建

準備工具如下:
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/

UI自動化測試簡介及Selenium工具的介紹和環境搭建