我正在尝试通过 Selenium Maven 插件(1.1 版)使用 selenese 命令运行一系列 HTML selenium 测试,希望能找到一个能够在不同浏览器(Chrome、Firefox、Internet Explorer、Safari)上运行这些测试的解决方案)。通过 Maven,我可以通过输入不同的浏览器值作为属性来创建不同的配置文件。我还计划在未来的 Hudson 等持续集成服务器上运行它。
然而,现在,我面临着一个两难的境地。由于这个论坛的一些帮助,我可以让 FireFox 4 显示 TestRunner,通过让插件使用 Selenium Server 2.0。但是,当浏览器被激活时,TestRunner 只是坐在那里,它不会自动运行套件中的测试。
如果我在 Selenium IDE 中运行测试套件,它运行得非常好,所以我知道测试套件没有问题。我还使用 IE 浏览器选项运行了测试套件,它运行良好,没有任何问题。我还确认通过降级到 Firefox 3.6 它将运行,所以我相当肯定这与 Firefox 4 和 Maven Selenium 插件有关。
请在下面查看我的 POM 文件片段。
....
<properties>
<selenium.server.version>2.0a7</selenium.server.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<browser>*firefox</browser>
<suite>src/test/selenium/html/suite.html</suite>
<startURL>http://localhost:5555/</startURL>
<port>5555</port>
</configuration>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>${selenium.server.version}</version>
<exclusions>
<!-- prevent ant:ant versus org.apache.ant:ant collision -->
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<executions>
<execution>
<id>Run-Selenese-Scripts</id>
<phase>integration-test</phase>
<goals>
<goal>selenese</goal>
</goals>
<configuration>
<port>5555</port>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
....
我使用 Maven 命令mvn integration-test运行脚本,正如我之前提到的,它会打开 TestRunner 页面,但测试不会自动运行。它使用的 URL 如下所示。
chrome://src/content/TestRunner.html?auto=true&multiWindow=false&defaultLogLevel=info&baseUrl=http%3A%2F%2Flocalhost%3A5555%2F&resultsUrl=http://localhost:5555/selenium-server/postResults&test=http%3A% 2F%2Flocalhost%3A5555%2Fselenium-server%2Ftests%2Fsuite.html
我觉得奇怪的是,当我将上面的 URL 更改为以下 URL 时,它会自动运行测试,这正是我想要的。
http://localhost:5555/selenium-server/core/TestRunner.html?test=..%2Ftests%2Fsuite.html&resultsUrl=http%3A%2F%2Flocalhost:5555%2Fselenium-server%2FpostResults
我的问题是有没有办法让 Maven-Selenium 插件通过使用有效的 URL 为 Firefox 4 自动运行?是否有一些我需要配置的设置?
如果答案是否定的,那么运行 Selenium HTML 脚本以使它们独立于浏览器运行的最方便的方法是什么。此外,在我们的构建完成并部署代码之后,我是否能够在持续集成服务器(如 Hudson)上运行这些测试?
非常感谢您,
胡安