MSBuild脚本是否可以将参数传递给Selenium测试运行器,然后可以由Selenium-IDE测试脚本使用?我希望我能做点像......
java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html -myVariable $(environmentSpecificVar)
...然后在我的Selenium-IDE脚本中使用它,如...
waitForTextPresent The passed in variable is ${myVariable}
没有问题传递特定于环境的url(这就是SeleniumTestBaseUrl的内容)但是我在将其他任何环境特定的内容传递到我的Selenium-IDE脚本时遇到了麻烦。
谢谢!
答案 0 :(得分: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
答案 1 :(得分:2)
关键是Selenium参数-userExtensions
首先,让脚本创建一个临时的js文件(在这种情况下获取Jenkins参数):
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"
在我的测试文件中,然后可以通过storeEval获取变量:
<tr>
<td>storeEval</td>
<td>myvariable</td>
<td>myvariable</td>
</tr>
<tr>
<td>echo</td>
<td>${myvariable}</td>
<td></td>
</tr>
答案 2 :(得分:1)
尝试将其设置为环境变量:
set myVariable=$(environmentSpecificVar) && java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html
请参见详细here。
答案 3 :(得分: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任务时所做的。