您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium及RFT進行自動化的全球化測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/4/2 15:33:59 ] 推薦標(biāo)簽:

  本文中主要使用的測試工具為 selenium Remote Core(Selenium RC),因此本文以下主要以 selenium RC 為例介紹 selenium 的技術(shù)原理及與 RFT 結(jié)合使用的實現(xiàn)方法。

  從圖 1 可以看出,Selenium RC 主要由 Selenium Server 和 Client Libraries 兩部分組成。圖 1 給出了 Selenium 的原理框架圖。

  Selenium Server:Selenium Server 負(fù)責(zé)控制瀏覽器的操作。Selenium Server 主要包括 3 個部分:Launcher,Http Proxy,Selenium Core。其中 Selenium Core 是被 Selenium Server 嵌入到瀏覽器頁面中的,這樣操作的目的可以使其實現(xiàn)同源策略。其實 Selenium Core 是一堆 Java Script 函數(shù)的集合,是通過這些 Java Script 函數(shù),我們才可以實現(xiàn)用程序?qū)g覽器進行各種操作。

  Client Libraries:Client Libraries 為程序設(shè)計語言與 Selenium RC server 提供了一個接口,可以調(diào)用各種程序設(shè)計語言,來實現(xiàn)自動化測試的要求。

  圖 1. Selenium 原理框架圖

  Selenium RC 的工作原理,圖 2 給出了 Selenium RC 的工作原理圖。

  測試用例通過 Client Libraries 的接口向 Selenium Server 發(fā)送 Http 請求,和 Selenium Server 建立連接。

  Selenium Server 的 Launcher 啟動瀏覽器,把 Selenium Core 加載到瀏覽器頁面中,并把瀏覽器的代理設(shè)置為 Selenium Server 的 Http 代理協(xié)議。

  測試用例通過 Client Libraries 的接口向 Selenium Server 發(fā)送 Http 請求,Selenium Serve 對請求進行解析,然后通過 Http 代理發(fā)送 JavaScript 命令通知 Selenium Core 執(zhí)行操作瀏覽器的動作。

  Selenium Core 接收到 JavaScript 命令后,執(zhí)行相應(yīng)的操作。

  瀏覽器收到新的頁面請求信息,而后發(fā)送 Http 請求,要求新的 Web 頁面。由于 Selenium Server 在啟動瀏覽器時已做了相應(yīng)的操作,所以 Selenium Server 會接收到所有由它啟動的瀏覽器發(fā)送的請求。

  Selenium Server 接收到瀏覽器的發(fā)送的 Http 請求后,自己重組 Http 請求,獲取對應(yīng)的 Web 頁面。

  Selenium Server 的 Http 代理把接收的 Web 頁面返回給瀏覽器。

  圖 2. Selenium 工作原理圖

   下面為了詳細(xì)說明 Selenium 具體的實現(xiàn)方法,清單 1 給出了一個用 Selenium 提供的方法實現(xiàn)百度搜索的實例代碼,代碼應(yīng)用的語言為 Java。

  清單 1. 基于 Java 語言的 Selenese 開發(fā)代碼

 
ant; padding-left: 2px; padding-right: 2px; font-family: arial, nsimsun, sans-serif; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 2px">

    
 package com.example.tests;
 import com.thoughtworks.selenium.*;
 import java.util.regex.Pattern;
 public class Test extends TestCase {
    public void setUp() throws Exception {
        setUp("http://www.baidu.com/", "*firefox");}
      public void testone() throws Exception {
          selenium.open("/");
          selenium.type("ibm", "selenium rc");
          selenium.click("btnG");
          selenium.waitForPageToLoad("10000");
          assertTrue(selenium.isTextPresent("Results * for selenium rc"));
  }
 }
 

  RFT 技術(shù)簡介

  IBM Rational Functional Tester (RFT) 是一款先進的,具有自動化測試的功能的回歸測試工具,它適合測試人員和 GUI 開發(fā)人員。Rational Functional Tester 的基礎(chǔ)是針對于 Java、.NET 的對象技術(shù)和基于 Web 應(yīng)用程序的錄制、回放功能。工具為測試者的活動提供的自動化的幫助,如數(shù)據(jù)驅(qū)動測試。它既包括了簡單的適合一般測試人員的 Record 和 Replay 模式,又包括了適合自動化開發(fā)人員的腳本語言模式,實現(xiàn)了各種高級定制功能。同時,它為 Java 和 Web 測試人員,提供了和開發(fā)人員同樣的操作平臺 (Eclipse),并通過提供與 IBM Rational 整個測試生命周期軟件的完美集成,真正實現(xiàn)了一個平臺統(tǒng)一整個軟件開發(fā)團隊的能力 , 同時也方便了與其他測試工具集成,使之能夠完成更加強大的測試功能。

  下面將簡單介紹 RFT 的工作原理:

  工作原理 1:在 Record 和 Replay 模式下 , 如圖 3 中所示,當(dāng) RFT 測試腳本開發(fā)人員在 test script 中,通過調(diào)用組件對象 Test Object 的方法對該組件進行操作的過程中,該 Test Object 會查找到與其對應(yīng)的 Test Object Proxy 對象,從而使用 Test Object Proxy 來對該 Test Object 進行獲取和操作。

  圖 3. RFT 原理結(jié)構(gòu)圖

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