我试图设置Selenium Grid,但我没有使用Selenium Grid下载中提供的ant配置,而是继续使用我的ant配置。
对于不知道SeleniumGird的蚂蚁用户来说,它是一个javalib,可以让UI测试分布在一个"yml"文件中指定的不同系统上。在这里,我可以启动一台集线器机器,然后它可以在不同的从属机器上控制浏览器。
我使用的Ant配置-
<target name="setClassPath">
<path id="classpath_jars">
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
<pathconvert pathsep=":" property="test.classpath"
refid="classpath_jars" />
</target>
<target name="launch-hub" description="Launch Selenium Hub" depends="setClassPath">
<java classname="com.thoughtworks.selenium.grid.hub.HubServer"
classpathref="classpath_jars"
fork="true"
failonerror="true">
<sysproperty key="http.proxyHost" value="${http.proxyHost}" />
<sysproperty key="http.proxyPort" value="${http.proxyPort}" />
<sysproperty key="https.proxyHost" value="${https.proxyHost}" />
<sysproperty key="https.proxyPort" value="${https.proxyPort}" />
</java>
</target>
现在,在使用此配置时,我的hub总是以"yml"文件开始,该文件在"selenium-grid-hub-standalone--1.0.8.jar"中可用,而不是考虑我在项目根上定义的"yml"文件。
在此之后,我更改了如下ant配置,该配置可在SeleniumGriddistribution-中使用
<path id="hub.classpath">
<pathelement path="${basedir}/"/>
<fileset dir="${basedir}/lib">
<include name="selenium-grid-hub-standalone-1.0.8.jar"/>
</fileset>
</path>
<target name="launch-hub" description="Launch Selenium Hub">
<java classname="com.thoughtworks.selenium.grid.hub.HubServer"
classpathref="hub.classpath"
fork="true"
failonerror="true" >
<sysproperty key="http.proxyHost" value="${http.proxyHost}"/>
<sysproperty key="http.proxyPort" value="${http.proxyPort}"/>
<sysproperty key="https.proxyHost" value="${https.proxyHost}"/>
<sysproperty key="https.proxyPort" value="${https.proxyPort}"/>
</java>
</target>
现在,当我启动hub时,它会考虑在我的项目根目录中定义的"yml"文件,而不是"selenium-grid-hub-standalone--1.0.8.jar"文件中可用的文件。
我不是蚂蚁爱好者,但我发现两种配置几乎相似,其中第一种配置依赖于目标,而另一种则使用"pathid"。有谁能揭露这件事吗?
我认为不同之处在于第二个示例中的类路径包括您的项目根目录:
<pathelement path="${basedir}/"/>
而第一个没有。