使用 IBM Rational Functional Tester 7.0.1 測試 Flex 應用程式

myattitude發表於2009-05-26
於這篇文章必要的資訊

這篇文章假定您已經對使用 IBM® Rational® Functional Tester 進行自動化測試的基本概念已經非常熟悉。請檢視參考資源部分中的連結,是對 Rational Functional Tester 的介紹。

目標

  • 瞭解各種測試 Adobe® Flex® 應用程式的場景。
  • 為 Rational Functional Tester 配置一個 Flex 開發環境。
  • 建立 Flex 應用程式的自動測試操作。
  • 在 Flex 應用程式上記錄和回放一個指令碼。

必備條件

  • Rational Functional Tester V7.0.1
  • Microsoft® Internet Explorer 6.0
  • Adobe Flex SDK 2.0 或者更新版本
  • Adobe Flex Automation Package
  • Adobe Flash Player 9.0.28.0 或者更新版本
  • Apache HTTP Server (如果您的應用程式需要在一個伺服器上工作。這裡有一些對 RuntimeLoading 元件理解的資訊)

假設

使用 Rational Functional Tester 測試 Flex 應用程式需要 Flex 開發人員與測試人員工作之間的合作。這篇指南假定下面這些各自的角色都是真的。

開發人員

  • 對 Flex 應用程式的開發和編輯有一定的瞭解
  • 是編寫 Flex 應用程式原始碼的程式設計師,並且瞭解 Flex SDK 和 Automation Framework
  • 對 Web 伺服器配置和部署有完全的瞭解
  • 可能對 Rational Functional Tester 並不熟悉

測試人員

  • 沒有應用程式的原始碼
  • 沒有 Flex SDK 和 Automation Framework
  • 可能對 Web 伺服器配置和部署也不熟悉

機器配置

開發人員的機器

  • Flex Builder 2.0.1 或者更高階版本,Flex SDK 2.0 或者更高階版本,Flex Automation Framework
  • Microsoft Internet Explorer 6.0
  • Adobe Flash Player 9.0.28.0 或者更高階版本

測試人員的機器

  • Web 伺服器訪問(例如,Apache 或者 IIS)
  • Internet Explorer 6.0
  • Flash Player 9.0.28.0 或者更高階版本

Web 伺服器機器

  • Flex Automation Package

Rich Internet Application (RIA) 是一種新的 Web 應用程式術語,它在整個 Internet 將靈活性、響應度,以及桌面應用程式的簡單使用與更廣泛的訪問結合起來。這些應用程式變得越來越普遍。Adobe® Flex® 是一個跨越平臺的開發框架,用來建立這樣的應用程式。Flex 應用程式通常是使用 Adobe® MXML™,Flex 標識語言,或者 Adobe® ActionScript® 語言來編寫的。當與 Flex SDK 庫一起編譯時,.mxml 或者 .as 檔案將給您一個 Adobe® Shockwave® (.swf) 檔案,這才是真實的應用程式。.swf 檔案可以在 Flash 播放器中執行,或者內嵌在 HTML 中。

Rational Functional Tester 是一個測試自動工具,它可以提供一套特性來測試基於 Java™ 技術,HTML,Microsoft® .NET,SAP,以及其它技術來測試 GUI 應用軟體。測試人員可以記錄並作用於這樣的應用程式上,從而產生測試指令碼。與這些一起,他們還可以新增驗證點和驅動資料。

Rational Functional Tester 7.0.1 包括關鍵字測試以及支援使用 Flex SDK 2.0 測試應用程式元件。這樣提供了測試執行在 Internet Explorer 的 Flex 應用程式的特性。緊接下來的部分提供了一個按部就班的指導,啟用了自動化支援,並測試應用程式。

三種測試 Flex 應用程式的方法

開發人員啟用了在設計和以執行階段使用 Rational Functional Tester 測試 Flex 應用程式的特性。這裡,加強意味著新增參考到 Rational Functional Tester 介面卡和 Flex Automation Framework 庫到被測試的應用程式。對於測試 Flex 應用程式有三種可能的情形:

  1. 使應用執行在 Web 伺服器上。 這使開發人員可以將 Flex 應用程式與 Flex SDK 庫,Flex Automation Framework 庫,以及 Rational Functional Tester 介面卡聯合起來,並且在一個測試人員可以訪問和用來測試的 Web 伺服器上操作應用程式。
  1. 使應用執行在本地機器上。 當原始碼可利用時,使用者可以將原始碼與 Flex SDK 庫,Flex Automation Framework 庫,以及 Rational Rational Functional Tester 介面卡聯合起來。應用程式在本地機器上執行。
  1. 應用程式沒有啟用的自動化支援。在案例中,應用程式執行在一個 Web 伺服器上,並且 Rational Functional Tester 的 Runtime Loader 元件是用來測試應用程式的。

對於開發人員:為測試準備應用程式

下載這些文件
  • TestEnabledApp.zip 壓縮檔案包括 testMyApp.mxml,testMyApp.swf,以及 SampleApp 目錄,它包括 testMyApp.mxml 以及與它一起部署的依存關係。
  • runtimeTestApp.swf 檔案是一個用來測試執行時裝載的非啟用應用程式

請參見 下載 部分。

Flex 應用程式開發人員的部分闡述了使用 Rational Functional Tester 啟用 Flex 應用程式測試的幾種不同的方法。

首先,下載 testMyApp.mxml 檔案,它是一個您將用來演練的範例應用程式(請看 下載)。在您的本地機器上建立地址,並將檔案儲存在:C:\FlexTutorial。

安裝 Flex 環境

在您使用 Rational Functional Tester 測試您的 Flex 應用程式之前,您需要安裝 Flex 環境:

  1. automation_agent.swc 檔案從 /frameworks/libs 地址拷貝到 /Flex SDK 2/frameworks/libs 地址。
  2. automation_agent_rb.swc 檔案從 /frameworks/locale/en_US 地址拷貝到 /Flex SDK 2/frameworks/locale/en_US 地址。

注意:
這是 en_US locale (U.S. English)的路徑。如果您使用的是另一個不同的位置,用那個地址代替 en_US 。理想情況下,Flex 自動操作安裝地址是:C:\Program Files\Adobe\Flex Automation 和 Flex 構建者安裝地址是:C:\Program Files\Adobe\Flex Builder 2

啟用測試的 Flex 應用程式包括與 Rational Functional Tester Adapter (rft.swc) 和 Flex Automation Framework 庫一起構建應用程式。這裡有三種實現的方法,部分具體闡述了每一種方法:

  • 配置 Flex Builder
  • 配置 Flex 命令列編譯器
  • 配置 Runtime Loader 元件

為編譯配置 Flex Builder

如果您有了 Flex Builder,您可以配置它,從而為編輯啟用 Flex 應用程式。

  1. 啟動 Flex Builder。
  2. 建立一個新的 Flex 專案。
  3. 在導航器中選擇 Flex 專案。
  4. 點選 Select Project > Properties > Flex Compiler
  5. 鍵入 “Additional compilerter arguments”區域中列表 1中顯示的程式碼。

列表 1. 附加編譯器變數的程式碼
				
-Include-libraries "\Flex SDK 2
\frameworks\libs\automation.swc" "\Flex SDK 2
\frameworks\libs\automation_charts.swc" "
\Functional Tester\bin\rft.swc"

  1. 點選 OK 來儲存您的變更。
  2. 點選 OK 來關閉 Properties 對話方塊。
  3. 編譯您的 Flex 範例應用程式:
    1. 開啟 Flex Builder 中的 testMyApp.mxml 檔案。
    2. 這些輸出檔案是 testMyApp.swf 和 testMyApp.htm。檔案是一個 HTML 包裝器,由 Flex Builder 在應用程式目錄下產生的(在案例中為,C:\FlexTutorial)。

HTML 已經準備好使用 Rational Functional Tester 進行測試,您將用在您的測試步驟中使用它。

使用此命令列啟用自動化測試

如果 Flex Builder 不可用,原始檔就需要與 Flex SDK 庫,Flex Automation 庫,以及 Rational Functional Tester 介面卡在命令列聯合起來。您可以通過執行安裝在 \FunctionalTester\Flex 資料夾中與 Rational Functional Tester 7.0.1 一起的成批檔案來實現:
buildapplicationwithadaptor.bat

  1. 將批檔案拷貝到與 .mxml 檔案 (C:\FlexTutorial,您可以在這裡儲存樣例應用程式,testMyApp.mxml) 相同的目錄下。
  2. 在命令提示下來到目錄,用 mxml 檔名稱作為變數開始執行批檔案。例如,如果應用程式是 testMyApp.mxml,正如在例子中,在命令列的提示下使用以下命令:
    Buildapplicationwithadapter.bat testMyApp.mxml

應用程式會導致產生一個 .swf 檔案 (在案例中為 testMyApp.swf)

注意:
只有當檔案包括圖表控制元件時,您才需要 automation_charts.swc 檔案。

配置 Runtime Loader 元件

Runtime Loader 元件包括 RuntimeLoader.swf Flex 應用程式,它對 Rational Functional Tester 已經事先啟用,並且也可以用來對非 Rational Functional Tester-enabled 應用程式在執行時的測試。當您不想把 Rational Functional Tester Adapter 和 Flex Automation Framework 庫作為一個依存關係引入您的應用程式時,您可以使用元件。相反,您可以要求來自 Rational Functional Tester 的 RuntimeLoader 元件檔案來對它進行編譯,並且使用 Flex SDK 和 Rational Functional Tester Adapter,然後將它部署到 Web 伺服器上。元件的檔案可在目錄下獲取:
\FunctionalTester\Flex

注意:
對於 Flex SDK 2.0,您可以使用包含在目錄下 Rational Functional Tester 中的 runtimeloader.swf :
\FunctionalTester\Flex

將編譯的 Flex 應用程式嵌入一個 HTML 中

要使用 Rational Functional Tester 來測試 Flex 應用程式,您需要將應用程式嵌入到一個 HTML 檔案中。因此,接下來您要建立一個 HTML 頁面。將列表 2中的程式碼拷貝到一個文字編輯器中,並將它儲存為 testMyApp.html


列表 2. Flex 應用程式的 HTML 包裝器
				

Flex Sample Application Testing




<embed>

正如您所看到的那樣,swf 名稱已經作為一個引數通過。因此,如果您想要測試任何其它的應用程式,您可以通過更改 .swf 檔名稱或者建立另一個 HTML 頁面來使用相同的 HTML 頁面。

部署應用程式

您可以將 swf、它的依賴檔案和 HTML 包裝器傳遞給測試人員,或者測試人員可以將這些部署到一個 Web 伺服器上。

Flex 應用程式檔案包括:

  • 應用程式檔案 (SWF)
  • HTML 包裝器以及包裝器檔案(包裝器檔案可包括 SWF 檔案,JavaScript. 檔案,以及其它檔案)
  • 模組檔案(SWF)
  • RSL 檔案 (SWC)
  • Helper 檔案,像主題 SWC 檔案,風格 SWF 檔案,以及影像、視訊和音訊檔案

部署 Flex 應用程式包括所有這樣的必須檔案在 Web 伺服器上的部署。

對於測試者:測試 Flex 應用程式

您將僅僅擁有開發人員提供的啟用的 .swf 檔案和 HTML 包裝器,或者非啟用的 .swf 檔案。

在您的本地機器上測試應用程式

如果 HTML 包裝器已經被提供,您僅僅需要按照簡易練習下記錄過程的步驟配置用來測試的 HTML 頁面即可。

如果您僅僅擁有非啟用的 .swf 檔案,您可以使用這裡所解釋的執行時載入元件。

當應用程式部署在一個 Web 伺服器上,那麼應用程式的執行時載入是可用的。執行時載入元件在 Rational Functional Tester\Flex 目錄下是可用的。

  1. 將 runtimeloader.swf 檔案和 runtimeLoadingTest.html 檔案拷貝到 Web 伺服器的根目錄。例子使用了一個 Apache 伺服器,因此您將要把這些元件拷貝到 apache\htdocs 目錄。被測試的應用程式部署在相同的目錄下。
  2. 在樣例中找到 runtimeTestApp.swf 檔案,並將它部署到伺服器上,這樣這三個元件都會在相同的 (apache\htdocs) 目錄下。
    • runtimeLoader.swf
    • runtimeLoadingTest.html
    • 應用程式 (這裡是 runtimeTestApp.swf )

開始測試應用程式,軟體名稱將會作為一個詢問引數通過到 runtimeLoadingTest.html 頁面:
http://localhost/RuntimeLoadingTest.html?automationswfurl=

在這裡,應用程式是 runtimeTestApp.swf,因此要鍵入 URL 地址:
http://localhost/RuntimeLoadingTest.html?automationswfurl=runtimeTestApp.swf

HTML 頁面與 Flex 應用程式一起下載,已經準備好被 Rational Functional Tester 測試。

有效方法的正反兩面

到目前為止,您已經學習了關於有效啟用的兩種型別,以及什麼時候使用哪一種。現在,您將回顧一下每個有效啟用的正反兩個方面。

編譯期間的啟用

在編譯期間使用 Flex 應用程式啟用的好處

  • 多個 Rational Functional Tester 啟用 Flex 應用程式可以嵌入到一個單一 HTML 頁面,並且可以同時被測試。
  • 當不同的 Flex 應用程式相互通訊時將會非常方便。使用者可以將所有相關的 Rational Functional Tester 啟用 SWF 檔案嵌入一個單一頁面,並且可以在測試的基礎上執行場景。
  • 可以通過在本地執行 SWF 檔案進行測試。

編譯期間啟用的侷限性:

  • 在將它部署到產品伺服器之前,需要清除 Flex Automation Framework 參考。然而這樣並沒有太大影響。
  • 由於他僅僅訪問了 Flex 應用程式原始碼,因此僅僅靠 Flex Developer 就可以完成。

在執行期間啟用

使用 Runtime Loader 測試 Flex 應用程式的好處:

  • 被測試的應用程式可以部署到產品環境中。
  • 由於技術複雜性是隱藏的,所以測試人員很容易理解。

使用 Runtime Loader 測試 Flex 應用程式的侷限性:

  • 只有獨立的 Flex 應用程式可以一次性測試。
  • Runtime Loader 不能在本地執行,需要將 Runtime Loader 檔案和要測試的應用程式部署到 Web 伺服器上。

簡單的練習

現在該是進行一個簡單的練習來操作您所學到的知識的時候了。

配置應用程式

在 Flex 應用程式上開始記錄,您首先要啟用和配置要測試的應用程式。

  1. 選擇 Functional Tester > Configure > Enable Environments for Testing
  2. 選擇 Web Browsers 製表中的 Internet Explorer ,然後選擇 Enable

圖 1. 啟用 Internet Explorer 環境檢視
工作空間圖片

  1. 點選 Test,結果將會顯示 “Passed”。
  2. 在 Java Environments 下,選擇 Javajre…. ,然後點選 Enable(圖 2)。

圖 2. 啟用 Java/JRE 環境
工作空間圖片

  1. 再次點選 Test ,您應該獲取如圖 3所顯示的回應。

圖 3. JRE Tester 結果資訊
對話方塊圖片

  1. 要配置應用程式進行測試,選擇 Functional Tester >Configure > Configure Applications for Testing
  2. 在 Application Configuration 嚮導中,點選 Add (圖 4)。

圖 4. Application Confirmation Tool (嚮導)
工作空間圖片

  1. 當您獲得 Add Application 嚮導時,選擇 HTML Application單選按鈕並點選 Next(圖 5)。

圖 5. 選擇應用程式
工作空間圖片

  1. 在下一個螢幕上,選擇 Local 單選按鈕(圖 6),然後點選 Browse 來尋找應用程式目錄(在案例中是:C:\FlexTutorial)。

圖 6. 選擇本地 HTML 應用程式
工作空間圖片

注意:
當應用程式是由 Web 伺服器託管時,您需要選擇 URL 單選按鈕(請看圖 7),並提供應用程式的 URL 地址。在當前這種情形下,來自 Runtime Loader 的 URL 地址為:
http://localhost/RuntimeLoadingTest.html?automationswfurl=runtimeTestApp.swf


圖 7. 託管應用程式的可選方法
工作空間圖片

  1. 點選 Finish,在下一個嚮導中,點選 ApplyFinish 按鈕。

您的應用程式現在已經配置好可以進行測試了。

回放指令碼

  1. 啟動記錄器,點選 Start Application,並從 Application Name 下拉選單中,選擇您配置的應用程式(圖 8)。

圖 8. 啟動 Application 檢視
工作空間圖片

  1. 當應用程式啟動後,您可以使用這些控制元件來記錄事件。

範例應用程式看起來如圖 9所示。


圖 9. 範例應用程式
工作空間圖片

圖 10 顯示了 Rational Functional Tester 記錄的範例指令碼。


圖 10. 記錄的指令碼
測試指令碼圖片

  1. 點選 Rational Functional Tester IDE 中的 Playback 按鈕來執行指令碼。

發現並修理故障

如果出現下面任何一個錯誤,您可以自己輕鬆地進行處理。

安全警告

當 Flex 應用程式啟動後會彈出一個安全侵害提示(請看圖 11)。


圖 11. 錯誤提示和描述
錯誤對話方塊圖片

確保您測試的 Flex 應用程式是從一個信任的資料夾中執行的。

  1. 您可以將 OUT 目錄新增到 FlashPlayerTrust 資料夾中的 Flex 檔案中。
  2. 您可以在 C:\Windows\System32\Macromed\Flash\ 目錄下建立一個 FlashPlayerTrust 資料夾。
    1. 建立一個 .txt 檔案並天際被測試應用程式的路徑到檔案。
    2. 將檔案儲存為 Flex,不帶副檔名。

您可以新增目錄的任何數字到 TXT 檔案。例如,如果 testMyApp.swf 和 testMyApp.html 檔案都在 C:\FlexTutorial 目錄下,您可以新增路徑到 Flex 檔案中。在 資源 中的 Learn 部分可以找到更多詳細的資訊。

FlexPlugin Call Failed 警報

當應用程式從 localhost/IIS 伺服器中執行時,您可以獲得一個表明外掛呼叫失敗的提示(請看圖 12)。


圖 12. 呼叫失敗通知
對話方塊圖片

如果發生失敗,請核查 Internet Explorer ActiveX 和外掛的本地安全設定:

  1. 開啟 Internet Explorer。
  2. 從選單工具條中選擇 Tools > Internet Options
  3. 點選 Security 標籤。
  4. 選擇合適的 Web 內容區域。例如,如果您在本地機器上安裝了 Apache 或者 IIS,請選擇 Local Intranet
  5. 選擇 Custom Level
  6. 從“Reset to”列表中,選擇 Medium-low
  7. 在 “Initialize and script. ActiveX controls not marked as safe” 下,點選 Enable 單選按鈕。
  8. 點選 OK

應用程式頁面沒有顯示

當應用程式託管在一個伺服器上,並且應用程式頁面沒有正確地顯示,確保伺服器正在執行。

作者:Richa Aswathy, 系統軟體工程師, IBM

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-604214/,如需轉載,請註明出處,否則將追究法律責任。

相關文章