2011-04-20 180 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>