2011-04-20 220 views
3

MSBuild腳本是否可以將參數傳遞給Selenium測試運行器,然後由Selenium-IDE測試腳本使用它?我希望我可以做這樣的事情......將變量傳遞給Selenium-IDE腳本

java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html -myVariable $(environmentSpecificVar) 

...,然後從我的硒IDE腳本中喜歡使用它...

waitForTextPresent The passed in variable is ${myVariable} 

即使世界傳遞一個環境沒有問題(即SeleniumTestBaseUrl是什麼),但我無法將任何其他特定環境傳遞到我的Selenium-IDE腳本中。

謝謝!

+0

我採用XmlPoke'ing相應的變量到腳本的格外討厭policiy,因爲沒有別的似乎工作。 – GoatInTheMachine 2011-04-26 11:00:04

回答

1

嘗試將其設置爲環境變量:

set myVariable=$(environmentSpecificVar) && java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html 

見detailes here

+0

設置環境變量似乎可行,但我無法在腳本中使用它 - 我還沒有找到一個selenium命令來捕獲環境變量。 – GoatInTheMachine 2011-04-20 12:56:47

1

既然你正在運行java命令,你應該嘗試使用-D標誌在命令行設置一個特定的屬性:

java -jar selenium-server.jar ... -DpropertyFoo=valueBar 

要調用的MSBuild中,您只需設置一個屬性和包裝在Exec的任務上面的命令:

<Exec command="java -jar selenium-server.jar ... -DpropertyFoo=$(propertyFoo)" /> 

我不是太熟悉Selenium IDE的腳本,所以我不知道你是否就可以訪問性質的方式,但是這是我做的時候從我的MSBuild腳本調用ant任務。

+0

謝謝,設置環境變量工程,但似乎並沒有通過Selenium訪問。 – GoatInTheMachine 2011-04-26 10:59:28

2

以下命令將允許您從Selenium IDE中檢索一些環境變量。如果您使用* firefox作爲瀏覽器,這也適用於Selenium RC。

Command: storeEval 
Target: Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USERNAME'); 
Value: username 

參考:Finding the currently logged in user from a Firefox extension

2

的關鍵是硒參數-userExtensions

首先,讓腳本創建一個臨時的js文件(在這種情況下獲得一個詹金斯參數):

echo "var myvariable='$myJenkinsVariable'" > user-extensions.js 

然後將用戶變量傳遞給Selenium,如下例所示:

java -jar /var/lib/selenium/selenium.jar -htmlSuite *firefox http://flowcom.se "build/suite.html" "build/report/report.html" -userExtensions "user-extensions.js" 

在我testfile的則有可能通過storeEval得到變量:

<tr> 
    <td>storeEval</td> 
    <td>myvariable</td> 
    <td>myvariable</td> 
</tr> 
<tr> 
    <td>echo</td> 
    <td>${myvariable}</td> 
    <td></td> 
</tr>