有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Maven完全自动化Saucelabs测试?

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

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

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


共 (1) 个答案

  1. # 1 楼答案

    我最近创建了一个Sauce Connect plugin for Maven,它提供mojo来启动和停止Sauce Connect进程

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

    通过在pom中添加以下内容,可以将Sauce Connect Maven插件包括在项目中。xml文件:

    <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>
    

    我还创建了一个simple example project,它演示了sauceconnect插件以及Cargo和Failsafe的用法

    该插件是相当新的,所以请让我知道如果你有任何反馈