改進 Rational Functional Tester 啟動應用程序的過程(3)

發表于:2011-12-08來源:未知作者:領測軟件測試網采編點擊數: 標簽:rational
runCommand 函數用于執行傳遞的命令,execApp 函數通過參數獲得應用程序路徑,然后調用 runCommand 函數來啟動應用程序。 接著就可以更新 testMain 函數,使用

  runCommand 函數用于執行傳遞的命令,execApp 函數通過參數獲得應用程序路徑,然后調用 runCommand 函數來啟動應用程序。

  接著就可以更新 testMain 函數,使用 execApp 函數代替 startApp 。如清單 5 。

  清單 5. testMain 函數

 

public void testMain(Object[] args) { 
		
 // 啟動應用程序
 execApp(sAPPPath); 

 ...... 
 }

  傳遞給 execApp 的變量可以通過讀取配置文件獲得應用程序路徑。下面添加讀取配置文件代碼和相關變量。如清單 6 。

  清單 6. 讀取配置文件代碼

 

 // 配配置文件
 public static String sFileLocation="C:\\workspace\\Project1\\conf.properties"; 
 // 應應用程序路徑變量
 public static String sDBAPPPath; 
 // 讀讀取配置文件
 public static String getPropertyFromFile(String sKey, String fileName){ 
	
	 Properties prop = new Properties(); 
	 File file = new File(fileName); 
	 FileInputStream fis=null; 
	 String sPropVal = ""; 
	
	 try{ 	
		 fis= new FileInputStream(file); 
		 prop.load(fis); 
		 sPropVal = prop.getProperty(sKey); 
		 fis.close(); 
	 }catch(Exception e) { 
		 e.printStackTrace(); 
	 } 
	 return sPropVal; 	
 }

  getPropertyFromFile 函數根據配置文件里的鍵值對返回相應的值。配置文件 conf.properties 里添加鍵值對為 AppLocation = < 應應用程序路徑 > 。對于本文的測試場景,< 應應用程序路徑 > 就就是 Lotus Connections 2.0 安裝程序在本機上的文件路徑,如 C :\Build\LC2.0_20080427\install.bat 。

  然后給 sAPPPath 變變量賦予 getPropertyFromFile 的返回值,將其傳遞給 execApp 。如清單 7 。

  清單 7. 更新后的 testMain 函數

 

public void testMain(Object[] args) { 
		
 // 讀讀取配置文件里的路徑
 sAPPPath=getPropertyFromFile("AppLocation",sFileLocation); 
 // 啟動應用程序
	 execApp(sDBAPPPath);
...... 
 }

  同時,為了使命令行調用腳本更方便,我們可以將應用程序路徑做為命令行的一個參數傳遞。

  進一步修改 testMain,使之既可以讀取配置文件獲得應用程序路徑,也可以通過命令行來獲取。如清單 8 。

  清單 8. 添加 testMain 獲取命令行參數代碼

 

public void testMain(Object[] args) { 
	
	 if(args.length > 0 && args.length == 1){ 
 // 通過命令行方式讀取應用程序路徑
		 sDBAPPPath = args[0].toString(); 
		 System.out.println("Read App Info with command"); 
	 }else{ 
 // 通過配置文件方式讀取應用程序路徑
		 sDBAPPPath=getPropertyFromFile("AppLocation",sFileLocation); 
		 System.out.println("Read App Info with properties"); 
	 } 
	
 // 啟動應用程序
	 execApp(sDBAPPPath); 
	
	 ...... 
 }

  如此,就可以在命令行中加上應用程序路徑參數。當需要測試新 build 時候,通過改變此參數,可以使調用更靈活。如清單 9 。

  清單 9. 傳遞參數的 RFT 命令行代碼

 

 "C:\Program Files\IBM\SDP70\jdk\bin\java" -classpath 
 "C:\Program Files\IBM\SDP70\FunctionalTester\bin\rational_ft.jar"
     com.rational.test.ft.rational_ft 
     -datastore "C:\workspace\Project1" 
     -playback testcases.install.Script1<App location>
			

  總結

  通過以上的做法,解決了現實應用中出現的問題:

  當有新 build 需要測試的時候,用戶只需要在配置文件里改變一下路徑,就完成了配置過程。不需要重新打開 RFT 的配置應用程序窗口進行配置。

  當需要自動化測試的時候,用戶可以使用命令行方式來調用測試腳本,并且在命令行里傳遞新 build 的路徑信息。除了可以采用計劃任務來觸發 RFT 命令行外,也可以使用 STAF (Software Testing Automation Framework) 來實現 RFT 的自動化框架。關于自動化測試框架實現的話題超出了本文的討論范圍。但是這一切得以實現來源于本文所討論的改進 RFT 啟動應用程序的過程。

  免責聲明

  本文僅代表本人觀點,并非代表 IBM 的立場、策略和觀點。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97