2012-09-25 52 views
2

這是我想要自動化(它是一個Java Web應用程序)的工作流程:如何使用Maven完全自動化Saucelabs測試?

  1. 開發人員創建硒IDE /編輯測試套件(S)(W /火狐)
  2. 該套件保持在項目庫爲HTML文件的集合
  3. 在每個Maven構建循環:
    1. 集裝箱碼頭在http://localhost:12345(隨機端口號)開始在本地
    2. SauceConnect開始彌補我的本地主機和Saucela BS電網
    3. HTML測試套件(S)在電網運行,對我的本地容器
    4. SauceConnect關閉
    5. 碼頭集裝箱關機
    6. 如果任何測試的測試套件失敗 - Maven構建失敗

是否有可能做到這一點?更具體的問題是如何在Saucelabs上運行HTML測試套件?他們有一個關於http://ondemand.saucelabs.com:80/selenium-server/driver/的非常短的文檔,我可以使用,但我沒有找到任何細節。

回答

5

我最近創建了一個Sauce Connect plugin for Maven,它提供了Mojos來啓動和停止醬連接過程。

這將允許您使用Cargo(可以配置爲啓動Jetty),Failsafe]和Sauce Connect的組合來實例化您的容器和Sauce Connect,運行測試並關閉容器和Sauce Connect一次測試已經完成,所有這些都可以通過調用mvn verify來運行。

<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,這表明醬的使用連接插件一起:

醬連接Maven插件可以通過添加以下到您的pom.xml文件包含在你的項目中與貨物和Failsafe。

該插件是相當新的,所以請讓我知道如果您有任何反饋!

+0

看起來不錯,謝謝!它是否支持在同一臺服務器上並行執行相同的構建? – yegor256

+0

* *應支持並行執行,因爲代碼重用Sauce CI插件中包含的邏輯,這可確保每個Sauce用戶運行一個Sauce Connect實例,並且只有在最後一個調用它的進程時Sauce Connect纔會關閉完成。讓我知道如果有任何問題,但:) –

相關問題