0

我正在尝试通过 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)上运行这些测试?

非常感谢您,

胡安

4

1 回答 1

0

我弄清楚了这个问题。我只是升级到 Selenium Server 2.0b3 工件,它运行顺利。显然,2.0a7 于 2010 年 10 月发布,而 2.0b3 于 2011 年 3 月发布,与 Firefox 4 发布时间相吻合。

测试现在可以在 Firefox 上自动运行。我希望这可以帮助遇到同样问题的其他人。

干杯,

胡安

于 2011-06-07T15:14:44.797 回答