您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 >
使用XML維護Selenium自動化測試腳本
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/6/7 10:46:27 ] 推薦標簽:

  ● Selenium IDE:Selenium-IDE 是快速開發(fā) Selenium 測試用例的 Firefox 插件工具。可以利用它錄制用戶的基本操作,生成測試用例腳本,還可以將這些測試用例轉(zhuǎn)化為其他編程語言的自動化測試腳本。通過點擊回放按鈕,可以回放錄制的測試用例腳本。該工具還包含一個上下文菜單,測試工程師可以使用它從瀏覽器的當前顯示頁面選擇頁面元素,然后可以選擇適配已選取元素的帶預定義參數(shù)的 Selenium 命令來快速完成腳本編寫。這一特性為自動化測試人員節(jié)省了花費在腳本編寫上的時間、也提供了學習 Selenium 命令的快捷方法。

  ● Selenium Grid:Selenium Grid用于在不同的機器系統(tǒng)上、不同的瀏覽器上并行運行自動化測試。利用 Selenium Grid,可以輕松創(chuàng)建分布式自動化測試環(huán)境

  下面,我們將會使用 JUnit4 和 Selenium Server 演示如何對前文提到的測試用例編寫自動化測試腳本。準備項目依賴的 Jar 文件,如 Selenium、dom4j 等 Jar 包,啟動 Eclipse 集成開發(fā)環(huán)境,創(chuàng)建項目名稱為 SeleniumDemo 的 Java 項目,并創(chuàng)建一個 JUnit 4 單元測試類:dw.junit. DWloginJUnit.java,依次編寫 @BeforeClass、@Test 、@AfterClass 方法。本文提供源代碼下載,您可自行下載,導入到自己的 Eclipse 開發(fā)工作區(qū)。首先,創(chuàng)建 Selenium 實例,啟動瀏覽器,使瀏覽器窗口大化,打開要訪問的谷歌網(wǎng)站。代碼如下:

  清單 1. 創(chuàng)建初始化 Selenium 實例

private static Selenium selenium;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
    selenium = new DefaultSelenium("localhost", 4444, "*iexplore",
               http://www.google.com/);
    System.out.println("正在啟動 Selenium。。。");
    selenium.start();
    selenium.windowMaximize();
    selenium.open("/");
}

  然后在測試方法中實現(xiàn)演示用例,即在谷歌站點搜索輸入框輸入“ibm developerworks cn”,然后點擊搜索按鈕,后截圖。Pause 和 captureScreenshot()方法在本文附帶的源代碼文件中可查。執(zhí)行用例部分的代碼清單如下:

  清單 2. 執(zhí)行用例的程序代碼

@Test
 public void test() {
 // 在 Google 查詢輸入框,輸入 ibm developerworks cn
 String queryString="ibm developerworks cn";
 selenium.type("//input[@name='q']", queryString);
   pause(1000);
 // 單擊查詢按鈕,執(zhí)行查詢
 selenium.click("//input[@name='btnK']");
   pause(1000);
 System.out.println("獲取的頁面標題:"+selenium.getTitle());
   pause(2000);
 SeleneseTestBase.assertTrue(selenium.getTitle().contains(
 queryString));
 // 測試截圖函數(shù)
 captureScreenshot("截圖測試 JUnit");
  }

  后,執(zhí)行用例完畢后調(diào)用 tearDownAfterClass() 方法銷毀 Selenium 實例。

  清單 3. 銷毀 Selenium 實例

@AfterClass
public static void tearDownAfterClass() throws Exception {
     if(selenium != null){
            System.out.println("停止 Selenium !");
            selenium.stop();
        }
  }

  我們來演示如何執(zhí)行這個單元測試類:先打開一個命令行窗口,并切換到 Selenium Server Jar 文件所在的目錄,運行 java -jar selenium-server-standalone-2.{ 版本號 }.{ 修訂版本號 }.jar 來啟動 Selenium Server。在 Eclipse 工作區(qū),右鍵選擇 dw.junit.DWloginJUnit.java,選擇 Run as — JUnit Test 來運行單元測試類?梢钥吹,瀏覽器自動啟動起來,訪問谷歌查詢引擎主頁,在搜索框自動輸入了“ibm developerworks cn”,并點擊查詢按鈕進行了查詢。在 Eclipse 的 JUnit 視圖,可以看到顯示代表執(zhí)行成功的綠色圖標,在 SeleniumDemo 項目的根目錄下生成了一個 png 格式的谷歌查詢結(jié)果頁面的截圖文件。

  自動化測試框架開發(fā)人員如何做

  我們上文實現(xiàn)了演示用例的自動化回歸測試,很多公司的測試工程師也是用這樣的方法執(zhí)行自動化測試的,但這不是好的方法。理由如下:

  1、如果用例發(fā)生變更,比如界面的美化重構(gòu)導致頁面的某一控件元素信息變化,不得不修改 Java 腳本代碼,重新編譯打包。

  2、擅長業(yè)務(wù)的測試人員很大一部分還是不熟悉 Java 編程的,他們期望有一種不需要編程的測試框架,這樣他們可以根據(jù)對業(yè)務(wù)的把握,快速編寫自動化測試用例腳本。

  目前市場上還沒有自動化測試工具可以直接識別傳統(tǒng)的測試用例,繼而直接執(zhí)行自動化測試。也是說,現(xiàn)在還沒有工具可以讀取像“用戶名輸入框”這樣的純文字性描述內(nèi)容,然后映射到頁面上的輸入框控件。那么,如何添加一些額外的信息到傳統(tǒng)的用例里面,從而使自動化工具能執(zhí)行業(yè)務(wù)測試人員寫的這些用例呢?

  先分析一下 Web 應(yīng)用的測試用例及其測試步驟,顯而易見,都包含下述幾部分:Web 頁面控件部分、用戶執(zhí)行動作部分、測試數(shù)據(jù)部分等。比如,演示用例中提到的用戶輸入框、密碼輸入框和登錄按鈕屬于 Web 頁面控件,動詞輸入、點擊等屬于用戶執(zhí)行動作,用戶名和密碼數(shù)據(jù)屬于測試數(shù)據(jù)。我們需要把這幾部分都添加額外信息、轉(zhuǎn)化為測試工具能識別的形式。測試工具都提供定位 Web 頁面控件的方式,以 Selenium 為例,它可以通過 CSS、JS 和 XPath 定位控件,方式非常豐富。用戶執(zhí)行動作對應(yīng)著測試工具的應(yīng)用編程接口 API,測試工具都提供類似單擊 Click、雙擊 DoubleClick、拖拽 DragAndDown、輸入數(shù)據(jù) Type 等動作的 API。頁面控件信息和測試數(shù)據(jù)對應(yīng)著 API 的參數(shù)列表。比如,selenium.type(“//input[@id= ’ username ’ ]”,”我的用戶名”)。

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd