我們在一個現有的版本里錄制腳本,就是為將來版本的測試工作做投資;當下一個版本提交測試時,就在新版本里回放測試腳本,從而代替了手工去測試新版本的工作。
這一步,我們錄制一個定購CD的腳本,腳本同時支持靜態數據和動態數據,錄制完成后,我們得到一個java代碼的腳本文件,可以編輯和執行。
開始錄制腳本
a. 首先確信在測試視窗(Test perspective)里,Rational XDE Tester 主窗口的標題欄顯示Test – Rational XDE Tester
b. 選擇 File > New > XDE Tester Script Using Recorder,打開錄制新腳本的對話框,我們這里把腳本名字叫做“Order” ,點擊完成。
版本控制: 如果和Rational ClearCase集成,測試腳本可以通過ClearCase做版本控制,以方便于多用戶創建腳本的環境,跟蹤腳本的即時變更。
錄制用戶動作
Rational XDE Tester通過記錄用戶的鼠標、鍵盤動作來錄制腳本,錄制時,可以通過Recording Monitor window窗口監視XDE Tester的記錄活動。
a. 錄制進程開始后,出現一個錄制工具欄Record toolbar ,點擊 按鈕開始運行測試應用程序。
配置應用程序:為了測試應用程序,首先配置要測試的應用程序,詳見后續部分。
b. 彈出開始應用程序對話框,如果已經配置好應用程序,程序名稱會出現在下拉列表里,這里我們配置了ClassicsJavaA 。
c. 通過下列步驟完成一個 Haydn’s Violin Concertos的訂單
1. 點擊Haydn 下的[+]節點
2. 選擇 Violin Concertos
3. 點擊 Place Order 按鈕
登陸窗口Member Logon出現:
4. 選擇默認的客戶 Trent Culpito
5. 輸入密碼 secret
重要步驟! 確信點擊了復選框 - you'll see why when we get to playback time!
6. 點擊Remember Password
7. 點擊 Ok
Place an Order 窗口出現,完成下列動作:
8. 輸入信用卡號Credit Card Number: 1414 2525 3636 4747
9. 輸入過期日期 Expiration Date: 12/05
10. 點擊 Place Order
設立腳本的檢查點
檢查點是在腳本里設置檢查內容的位置,通常是捕獲一個基線快照,在后續版本里與此進行比較。
a. 訂單完成以后,會出現一個對話框提示操作成功信息。
通過檢查點的動作向導 Action Wizard來記錄檢查點,點擊Action Wizard的 按鈕,將鼠標拖到測試程序的檢查信息附近,當變成一個紅色方框時,釋放鼠標。
b. 點擊 Next查看捕獲的數據
c. 點擊 Finish完成捕獲基線數據
d. 點擊訂單提示對話框的OK
完成錄制
查看訂單信息,然后完成錄制:
a. 選擇 Order > View Existing Order Status,點擊OK繼續
b. 設置一個關于訂單信息的檢查點
c. 在wizard 的Data Value下拉菜單選擇 “Table Contents”
d. 點擊Next查看捕獲的數據
e. 點擊Finish完成捕獲基線數據
f. 點擊Cancel Selected Order
g. 點擊Close
h. 點擊應用程序Close 按鈕關閉程序
i.點擊錄制工具欄的 按鈕完成錄制
第二步:評估腳本
動態數據檢查點:動態數據檢查點能使測試系統的輸出不是常量時,也保證輸出的正確性;例如時間、日期、總數、流水號、序列號等。一般來說,測試這種情況需要一定的編碼,但是用Rational XDE Tester 就不必編碼。
這一步里,我們回放測試腳本,并修改腳本以處理動態數據;樣例里訂單號在每次定購時都會不同,我們就來處理這個過程。
在Rational XDE Tester里運行腳本
a. Rational XDE Tester腳本能夠在命令行、Rational TestManager 里或直接在Rational XDE Tester 里運行,選擇Script > Run
b. 運行Rational XDE Tester腳本時,出現一個回放監視窗口來顯示腳本里記錄的動作,運行完成后,顯示測試日志log文件。
查看Rational XDE Tester日志
默認情況下日志文件以HTML 文件形式通過瀏覽器自動打開,Rational XDE Tester能以文本形式、HTML形式或Rational TestManager形式顯示日志。
查看日志文件時,我們會發現第一個檢查點失敗了,點擊 “View Results”鏈接查看進一步信息。
為什么測試失敗了呢?因為每次錄入訂單后都會產生一個新的訂單號,而我們的腳本是以錄制時的訂單號為基準,顯然這樣會出錯的,F在要將靜態數據改成動態數據。
將靜態檢查點轉化成動態檢查點
點擊Load Baseline的編輯按鈕
點擊基線值方框上方的編輯文本按鈕 ,打開編輯對話框
點擊正則表達式按鈕 ,將靜態檢查點轉化成動態檢查點
編輯文本區域,只將訂單號改成 [0-9]{2} 即可,這表示00和99之間任何兩位數。
正則表達式
這里提到正則表達式,它是PERL 和其他許多編程里都用到的一種標準的匹配模型。
為了保證設置的正則表達式準確,點擊表達式評估按鈕
點擊Evaluate,如果出現綠色的 “Match”字樣,說明表達式正確,否則錯誤。
點擊OK
關閉編輯窗口
保存腳本文件
關閉檢查點編輯器
再次運行腳本,確保運行通過
第三步:檢查對象映射(object map)
對象映射:彈性回放的關鍵
您也許注意到了,Rational XDE Tester 在自動生成測試腳本的同時,也創建了一系列對象,這些對象包含在對象映射里,每個對象映射包括被測試應用程序在測試腳本里用到的對象的全部信息;本節就要闡述對象映射在應用程序變更時對增加測試腳本回彈性所扮演的角色。
這一步,我們要打開對象映射,查看Rational XDE Tester 從應用程序中捕獲的GUI對象信息。
1. 檢查對象映射
對象映射提供了用戶對應用程序操作所涉及的每個GUI對象的信息。
在Rational XDE Tester腳本視窗里,擴展測試對象Test Objects目錄
私有和共享:對象映射可以是私有的,也可以是共享的,私有對象依附于腳本,只被指定的腳 本訪問;共享對象可以被眾多腳本訪問,因此共享對象對測試對象需要經常更新的情況有很大好處,修改一個共享對象,可更新全部使用該對象的腳本。
雙擊text對象,它是用戶輸入信用卡號的文本框
查看出現在Recognition標簽里的信息
從該標簽里看到Rational XDE Tester捕獲了這個對象的五個屬性,.class、.classIndex、.priorLabel、accessibleContext.accessibleRole、name,XDE Tester 就利用這些屬性尋找信用卡文本框并對它操作。
注意每一個屬性都有個權值weight,權值決定該屬性重要程度,在本例里,.name屬性(權值100)的重要程度是.priorlabel屬性(權值25)的四倍,用戶可以靈活調節權值大小。
當Rational XDE Tester在回放腳本時,對測試對象不是精確的在應用程序里匹配,而是用一個評分系統在應用程序里尋找最和對象映射里匹配的對象,Rational XDE Tester將對象映射里的對象屬性和應用程序里的目標對象屬性做比較,最終確定一個分值;最理想的分值是0,假如對象屬性發生了一個微小變化,分值會是個比較小的數字,Rational XDE Tester確定一個最小的分數,如果該分數在一個可以接受的容忍值內,那么就對該對象進行操作;這個特點意味著應用程序的GUI對象發生微小變化,不會使腳本運行中斷,從而節約腳本維護成本。
關閉對象映射
用戶自定義容忍值
基于應用程序會不斷升級修改,那么每次回放測試腳本時需要的對象和錄制時的GUI對象有所不同,用戶可以修改一個對象變化程度的值,保證XDE Tester 在回放時不會因此而停滯。
選擇ConfigureàPreferencesàRational XDE TesteràPlaybackà ScriptAssure,用戶可以在Tolerant和Strict之間調節該值
第四步:執行腳本
Script Assure縮減腳本維護量
我們現在到了可以體驗Rational XDE Tester帶來的精彩時刻了!腳本已經創建完成,現在要在應用程序新版本上自動運行測試了;從這點看,我們以后遇到的最大麻煩,就是腳本的維護工作。我們的目標是減少維護舊腳本工作量,增加創建新腳本的時間。這一步里,我們要了解Rational XDE Tester如何利用ScriptAssure 來縮減腳本維護工作量的。
這一節里,我們要執行測試腳本來驗證新版本應用程序的功能。
在新版本上回放測試腳本
在新版本回放測試腳本之前,需要修改腳本中應用程序的名稱。
a. 在腳本編輯器里,保證腳本Classics.java是激活的。在腳本部分的模板信息下方,看到打開應用程序的命令:
startApp("ClassicsJavaA");
b. 將"A"該成"B",注意這里大小寫敏感。
c. 選擇 Script > Run運行腳本
d. 腳本回放時,XDE Tester會因為尋找Remember Password復選框,在登陸窗口暫停20秒鐘;新版本在標簽名稱上有個變化,即原來的“Remember Password”改成了“Remember the Password” 。
幸好有了ScriptAssure,標簽對象的改變不會影響腳本的回放,ScriptAssure的模糊匹配邏輯該認為標簽對象仍然是最貼近對象映射里需要的對象,從而繼續執行腳本回放。
e. 等待腳本執行完畢,彈出日志文件。
重設GUI
注意應用程序的新版本里可能會有界面對象重組的情況,但是有了對象映射,XDE Tester不會依賴于對象的分布位置來確定,因此這種情況不會影響腳本的回放。
我們注意到,在日志文件里 Rational XDE Tester出現一個警告提示 “Object Recognition is weak”,意思是說測試中一個對象和錄制時的對象信息有所變化。
用戶可以決定是否忽略這個問題或者修改腳本文件。忽略問題不會影響腳本回放,但是,會繼續提示警告信息;如果修改對象映射文件,使腳本和測試程序保持同步,就不會提示警告了。
這一節講述了 Rational XDE Tester的ScriptAssure的強大功能。和其他測試工具比較,一般來說針對這樣的問題,測試腳本都會中斷,需要人工修改腳本;然而這樣的腳本問題很浪費時間,尤其對于夜晚自動測試的工作來說,一個小小的腳本錯誤也會耗時很久。
下一步干嗎呢?
讓我們回顧一下剛剛完成的事情:
我們創建了第一個Rational XDE Tester腳本
我們用動態數據驗證了一個測試檢查點
我們利用ScriptAssure 保證了應用程序變化時也會正;胤
接下來干嗎呢?
我們演示了Rational XDE Tester在實例程序的使用,現在是把它用到您自己測試程序里的時候了!開始之前,首先要配置您的測試程序。
按照如下步驟配置您的測試程序:
選擇Configure > Configure Applications for Testing…
選擇Add…
這里有三個選項,選擇:
Java Application,如果您的程序從一個 java .class 或.jar文件開始
HTML Application,如果您的程序是基于瀏覽器
Executable or Batch File,如果您的程序從一個批處理或可執行文件開始
點擊Run按鈕開始測試您的應用程序
如果測試程序啟動了,說明配置成功,您就可以對程序進行錄制腳本了;如果沒有啟動,訪問Detailed Information 重新設置。
下一步,我們要保證瀏覽器或者JVM被激活。首先需要按照“安裝并配置JRE”來配置JVM。
按照以下步驟激活瀏覽器:
選擇Configure > Enable Environments for Testing
在 Web Browsers標簽,選擇瀏覽器,點擊enable
在Java Environments標簽,選擇全部的JVM并點擊enable。JVM 一般會被自動激活,這里的操作只是一個防范措施。
Rational開發者網站
為了加深對Rational XDE Tester 的掌握,請訪問 www.rational.net 。在這里有很多關于Rational XDE Tester方面的白皮書和技術文章
總結
本指南說明了如何安裝Rational XDE Tester,如何錄制和回放測試腳本,以及如何驗證動態數據等,還有一些其他關于Rational XDE Tester的使用。
文章來源于領測軟件測試網 http://www.kjueaiud.com/