2016-09-05 34 views
5

Czy ktoś próbował nie wykonać działającego Jenkinsa, gdy twierdzenia Gatlinga nie zostały spełnione lub jeśli żądania się nie powiodły?Jak doprowadzić do niepowodzenia zadania Jenkinsa, gdy testy obciążenia Gatling nie są skuteczne

Na przykład:

  • oznaczyć Jenkins zbudować jako niestabilny, gdy globalna średnia wartość dla 95. percentyla jest pod konkretną wartość, powiedzmy 1,2 sek dla czasu reakcji
  • oznaczyć Jenkins budować za nieudaną jeżeli pewien procent próśb nie jest odpowiedziony

Czy ktoś ma pomysł, jak można to osiągnąć za pomocą istniejących wtyczek Maven/Jenkins dla Gatling.

moje ustawienia Maven Plugin to:

   <plugin> 
        <groupId>io.gatling</groupId> 
        <artifactId>gatling-maven-plugin</artifactId> 
        <version>${gatling.version}</version> 
        <configuration> 
         <failOnError>true</failOnError> 
         <simulationsFolder>src/test/scala</simulationsFolder> 
         <runMultipleSimulations>true</runMultipleSimulations> 
         <configFolder>src/main/resources</configFolder> 
        </configuration> 
        <executions> 
         <execution> 
          <id>GoOrBust</id> 
          <phase>test</phase> 
          <goals> 
           <goal>execute</goal> 
          </goals> 
          <configuration> 
           <simulationClass>mine.OnePunch</simulationClass> 
           <failOnError>true</failOnError> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 

<failOnError>true</failOnError> wpłynie tylko generowanie raportu, ale nie Jenkins Praca (oczywiście).

Wolałbym nie jawnie zgłaszać wyjątków z wnętrza testów, wykonując niestandardowy monitoring wyjątków/obsługę.

Odpowiedz

3
  1. Gatling specyficzne rozwiązanie: trzeba zdefiniować global assertion w skrypcie Gatling jak:

    setUp(scn.inject(...)) 
        .protocols(httpProtocol) 
        .assertions(
         global.successfulRequests.percent.greaterThan(99) 
    ) 
    
  2. Alternative. Możesz rozważyć uruchomienie skryptu Gatling przy użyciu narzędzia Taurus jako opakowania. Może pochłaniać istniejące testy Gatling i stosować do nich elastyczne Pass/Fail Criteria. W przypadku wyzwolenia błędu Taurus zwróci niezerowy kod wyjścia, a więc zadanie Jenkinsa zakończy się niepowodzeniem.