2014-09-04 16 views
5

Próbuję przeprowadzić prosty test wydajności przez Gatling. Używam maven, aby uruchomić ten proces. W celu łatwego podniesienia, gdy zmiany w kodzie łamią moje testy gatling, chcę, aby ta ostatnia kompilacja zawiodła. Upewniłem się, aby dodać <failOnError>true</failOnError> w moim pliku pom.xml.Awaria maven-build, gdy test Gatlinga ma zbyt wysoki odsetek w procentach.

Mój obecny scenariusz jest mniej więcej tak:

class MySim extends Simulation { 
    val httpProtocol = http.baseURL("http://localhost:8080") 
    val scn = scenario("Test") 
     .exec(http("request_1") 
      .get("""/helloworld""") 
      .check(status.is(200)) 
     ) 
    setUp(scn.inject(ramp(1 users) over (1 seconds))).protocols(httpProtocol) 
} 

uruchomić kompilację przy użyciu Maven (z Gatling-maven-plugin) używając mvn clean gatling:execute która zawsze dobrze sukcesu. (nawet gdy serwer nie działa). Szukam sposobu, aby upewnić się, że kompilacja maven nie powiedzie się, gdy test gatling nie powiedzie się (lub ma zbyt wysoki odsetek niepowodzeń).

Odpowiedz

7

Więc znalazłem rozwiązanie: Jedyne, co musiałem zrobić, to dodać asercje do setUp, z kryteriami, które chciałem. Tak więc poniższy kod byłby nieudany, gdyby współczynnik sukcesu był mniejszy niż 90%.

setUp(scn.inject(...)) 
    .protocols(httpProtocol) 
    .assertions(
     global.successfulRequests.percent.greaterThan(90) 
    )