Continuous integration 如何在Jenkins上使用远程浏览器执行js测试驱动程序任务?
我们使用Jenkins来持续集成.NET web应用程序和用于.NET测试的NAnt/NUnit。Jenkins配置了9个从机(都是Windows Server 2003),它们运行许多构建及其自动化测试 我们正在尝试设置js测试驱动程序来运行JavaScript单元测试,下面的NAnt任务在开发人员工作站上的本地运行良好。Internet explorer是我们希望测试的唯一浏览器,因为它是我们所有web应用程序的唯一目标浏览器Continuous integration 如何在Jenkins上使用远程浏览器执行js测试驱动程序任务?,continuous-integration,hudson,jenkins,windows-server-2003,js-test-driver,Continuous Integration,Hudson,Jenkins,Windows Server 2003,Js Test Driver,我们使用Jenkins来持续集成.NET web应用程序和用于.NET测试的NAnt/NUnit。Jenkins配置了9个从机(都是Windows Server 2003),它们运行许多构建及其自动化测试 我们正在尝试设置js测试驱动程序来运行JavaScript单元测试,下面的NAnt任务在开发人员工作站上的本地运行良好。Internet explorer是我们希望测试的唯一浏览器,因为它是我们所有web应用程序的唯一目标浏览器 <target name="jsTests" >
<target name="jsTests" >
<echo message="Running JavaScript tests..." />
<exec program="java.exe">
<arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" />
<arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" />
<arg line="--port 9876"/>
<arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/>
<arg line="--verbose"/>
<arg line="--reset"/>
<arg line="--tests all"/>
<arg line="--testOutput '${results.jstestdriver.dir}'"/>
</exec>
</target>
说我们可以在不同的机器上运行浏览器,而不是在js测试驱动服务器运行的机器上:
在运行任何测试之前,需要启动测试服务器
并捕获至少一个从属浏览器。服务器不必这样做
驻留在测试运行程序所在的计算机和浏览器上
他们自己也可以在不同的机器上
有人在Jenkins/Windows安装程序上这样做过吗
对于可扩展的安装程序,是否还有其他替代方案可供运行
js测试驱动程序
我做过类似的事情,但在100%的windows设置中没有,但我想在windows上做类似的事情不会有任何问题
在我的例子中,我必须在更多浏览器上进行测试:IE7、IE8、IE9、Chrome、Safari、Firefox 3.6和最新版本,因此,我所做的是安装具有我所需的所有浏览器的虚拟机,以及另一台在服务器模式下运行jstestdriver的机器:
java -Xmx256m -jar JsTestDriver-1.3.4-a.jar --port 4224
所有带有浏览器的虚拟机都有一个指向该服务器的实例(http://[jstd-server-ip]:4224/capture)
在这些机器上,我创建了一个计划任务,每天早上重置浏览器实例,因为我看到一些浏览器,特别是IE7,如果运行超过3天,就会停止工作
taskkill /f /IM iexplore.exe
iexplore.exe http://[jstd-server-ip]:4224/capture
这些机器和jstestdriver服务器一直在运行。我不确定在你的情况下这是否可能
然后,在应用程序上,我使用maven插件来启动测试:在我的例子中效果更好,但是如果你不使用maven,我想在NAnt中应该是这样的:
<target name="jsTests" >
<echo message="Running JavaScript tests..." />
<exec program="java.exe">
<arg line="-jar '${jstestdriver.dir}\JsTestDriver.jar'" />
<arg line="--config '${ui.webtests.dir}\JsTestDriver.conf'" />
<arg line="--browser 'C:\program files\internet explorer\iexplore.exe'"/>
<arg line="--verbose"/>
<arg line="--reset"/>
<arg line="--tests all"/>
<arg line="--testOutput '${results.jstestdriver.dir}'"/>
</exec>
</target>
这告诉jenkins执行的jstestdriver的客户机实例使用http://[jstd服务器ip]:4224作为其服务器
希望这对你有帮助 工作起来很有魅力。。。我在NAnt脚本中又做了一个小改动,删除了浏览器参数,因此:
server: http://[jstd-server-ip]:4224