2011-07-21 30 views
4

我有一個測試套件,包含3個測試用例,其中第一個測試用例包含其他2個測試用例中所需的所有變量它的測試套件數據集)
Selenium:從命令提示符執行測試套件時,不考慮存儲變量跨測試用例

所有這一切,當我在硒IDE中執行測試套件(手動加載測試套件在IDE中,然後運行),一切都很好。

,但我想測試用例執行報告,所以現在我使用下面的命令來執行測試套件
Java的罐子「硒服務器罐子路徑」 -htmlSuite「*火狐」「的BaseURL」的「TestSuite路徑「」結果文件路徑「

現在問題是在命令propmt中執行測試套件,
存儲在第一個測試用例中的變量,第二個測試用例中沒有考慮到,等等。

所以任何人都可以幫助我解決這個問題。

回答

2

開放檔案:硒的server.jar \核心\腳本\ 查找硒testrunner.js 查找並從文件中刪除下面的代碼:

storedVars = new Object(); 
     storedVars.nbsp = String.fromCharCode(160); 
     storedVars.space = ' '; 
+0

非常感謝您的快速回復..但我無法找到selenium-testrunner.js ...因爲我只有selenium server.jar文件..我不使用硒RC..Can你請指導我如何獲得這個文件? – anil

+0

我修改了selenium-testrunner.js,但仍然存在相同的問題..請幫我解決這個問題。 – anil

+0

對不起,您應該將該代碼移動到「startTestSuite」函數的開頭。 – Chucky

0

我在基於java的代碼解決了這個像這樣:

public class ExampleTest{ //main class of all testmodels 

private static String valueIneedToBeSendToAllTests; 

@Test 
    public void test1(){ 
    // steps of test 
    String result = driver.webelement().getText(); 
    setMyValue(result); 
    } 

@Test 
public void test2(){ 
    // steps of test 
    String whatWasTheTextAgain = getMyValue(); 

    } 


public String getMyValue(){ 
    return valueIneedToBeSendToAllTests; 

    } 

public void setMyValue(String valueToSet){ 
    this.valueIneedToBeSendToAllTests = valueToSet; 

} 


} 

所以在重複:

  • 值我需要prese RVED是私人和靜態
  • 這個值是作爲主類的價值還不如測試
  • 價值具有getter和setter方法之一。在其他方面,它崩潰對我來說
1

這個問題是一個已知的錯誤。所以,你需要打開你像7zip的(我用的)有硒的server.jar或RC罐子,找到以下文件:

selenium-server.jar\core\scripts\selenium-testrunner.js.

7zip的可以讓你在這個更新飛,而你需要做的僅僅是以下代碼移到什麼:

storedVars = new Object();
storedVars.nbsp = String.fromCharCode(160);
storedVars.space = ' ';

從功能的開始到startTestSuite功能的開頭。

簡單地移動存儲變量對象正在初始化的位置。

當u選擇7ZIP將在記事本中打開,你會看到的代碼沒有被格式化編輯,所以複製這一切,並在記事本++或東西打開它,然後粘貼回變更後,保存。

如果你在Windows上這樣做,你可能會遇到一個問題,因爲在RC jar的根目錄下有一個名爲'license'的目錄和一個名爲'LICENSE'的文件,可怕的窗口將其標識爲重複文件,所以在做完上面所說的所有之前,將文件'LICENSE'的名稱更改爲'LICENSE_FILE'之類的文件。

相關問題