2

这是我试图自动化的工作流程(它是一个 Java 网络应用程序):

  1. 开发人员在 Selenium IDE (w/Firefox) 中创建/编辑测试套件
  2. 该套件在项目存储库中作为 HTML 文件的集合进行维护
  3. 在每个 Maven 构建周期中:
    1. Jetty 容器在本地启动http://localhost:12345(随机端口号)
    2. SauceConnect开始连接我的本地主机和 Saucelabs 网格
    3. HTML 测试套件在网格上执行,针对我的本地容器
    4. SauceConnect 已关闭
    5. 码头集装箱已关闭
    6. 如果测试套件中的任何测试失败 - Maven 构建失败

有可能实现这一目标吗?一个更具体的问题是如何在 Saucelabs 运行 HTML 测试套件?他们有一个非常简短的关于 的文档http://ondemand.saucelabs.com:80/selenium-server/driver/,我可以使用,但我没有找到任何关于它的详细信息。

4

1 回答 1

5

我最近为 Maven 创建了一个 Sauce Connect 插件,它提供 Mojos 来启动和停止 Sauce Connect 进程。

这将允许您使用 Cargo(可以配置为启动 Jetty)、Failsafe] 和 Sauce Connect 的组合来实例化您的容器和 Sauce Connect,运行您的测试,并在测试完成后关闭容器和 Sauce Connect , 所有这些都可以通过调用mvn verify.

通过将以下内容添加到您的 pom.xml 文件中,可以将 Sauce Connect Maven 插件包含在您的项目中:

<build>
<plugins>
    <!-- Include Sauce Connect plugin -->
    <plugin>
        <groupId>com.saucelabs.maven.plugin</groupId>
        <artifactId>sauce-connect-plugin</artifactId>
        <version>1.0.15</version>
        <configuration>
            <sauceUsername>YOUR_SAUCE_USERNAME</sauceUsername>
            <sauceAccessKey>YOUR_SAUCE_ACCESS_KEY</sauceAccessKey>
        </configuration>
        <executions>
            <!-- Start Sauce Connect prior to running the integration tests -->
            <execution>
                <id>start-sauceconnct</id>
                <phase>pre-integration-test</phase>
                <goals>
                    <goal>start-sauceconnect</goal>
                </goals>
            </execution>
            <!-- Stop the Sauce Connect process after the integration tests have finished -->
            <execution>
                <id>stop-sauceconnect</id>
                <phase>post-integration-test</phase>
                <goals>
                    <goal>stop-sauceconnect</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    ...
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
   <id>saucelabs-repository</id>
   <url>http://repository-saucelabs.forge.cloudbees.com/release</url>
   <releases>
       <enabled>true</enabled>
   </releases>
   <snapshots>
       <enabled>true</enabled>
   </snapshots>
</pluginRepository>
</pluginRepositories>

我还创建了一个简单的示例项目,它演示了 Sauce Connect 插件以及 Cargo 和 Failsafe 的用法。

该插件相当新,所以如果您有任何反馈,请告诉我!

于 2012-12-22T02:37:15.660 回答