2

これは私が自動化しようとしているワークフローです(これは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ビルドが失敗します

これを達成することは可能ですか?より具体的な質問は、SaucelabsでHTMLテストスイートを実行する方法です。彼らは私が使用できる非常に短いドキュメントを持っていhttp://ondemand.saucelabs.com:80/selenium-server/driver/ますが、それについての詳細は見つかりませんでした。

4

1 に答える 1

5

私は最近、Maven用のSauce Connectプラグインを作成しました。これは、MojoにSauceConnectプロセスを開始および停止するためのプラグインを提供します。

これにより、Cargo(Jettyを起動するように構成できます)、Failsafe]、およびSauce Connectを組み合わせて使用​​して、コンテナーとSauce Connectをインスタンス化し、テストを実行し、テストが完了したらコンテナーとSauceConnectをシャットダウンできます。 、これらはすべて、を呼び出すことで実行できますmvn verify

Sauce Connect Mavenプラグインは、pom.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>

また、CargoおよびFailsafeとともにSauceConnectプラグインの使用法を示す簡単なサンプルプロジェクトも作成しました。

プラグインはかなり新しいので、フィードバックがあれば教えてください!

于 2012-12-22T02:37:15.660 に答える