2016-09-12 1 views
0

Je veux faire seulement 1 appel API toutes les 5 minutes pour "ConsumerApi.RunConsumer". Le 'Flow1' devrait fonctionner en continu.Je veux faire seulement 1 appel API toutes les 5 minutes. Comment puis-je y parvenir en utilisant gatling?

Je Hava une classe de scénario:

object ConsumerApi { 
//Defines the Consumer API call 
    val PostConsumerApi = http("Consumer API") 
    .post("http://abc.abc.com/v1/execute") 
    .headers(Headers.applicationJson) 
    .check(status is 200) 


    val RunConsumer = scenario("Run the Consumer") 
    .pace(5 minutes) 
    .exitBlockOnFail { 
     exec(PostConsumerApi) 
    } 
    } 

J'ai la classe de simulation:

class TestFlow extends Simulation { 
val httpConfTest = http.baseURL(Environment.apiHost) 
val Scenarios = List(
Flow1.Flow1 
    .inject(constantUsersPerSec(10) during (30 minutes)) 
    // Has to run for 30 minutes continuously. 
, 
ConsumerApi.RunConsumer 
    .inject(constantUsersPerSec(1) during (30 minutes)) 
    // has to make only 1 api call every 5 minutes for duration of 30 minutes 
) 
setUp(Scenarios) 
.protocols(httpConfTest).maxDuration(40 minutes)    .assertions(global.responseTime.max.lessThan(Environment.maxResponseTime.toInt)) 
.assertions(global.failedRequests.percent.lessThan(70))   .assertions(global.responseTime.percentile2.lessThan(Environment.maxResponseTime.toInt)) 

}

Répondre

0

Qu'en est-ce qui suit:

ConsumerApi.RunConsumer 
    .inject(atOnceUsers(1), 
      nothingFor(5 minutes), 
      atOnceUsers(1), 
      nothingFor(5 minutes), 
      //And so on... 
    ) 
) 

Vous pourriez vouloir t Jetez un coup d'oeil à la injection documentation pour une description détaillée des blocs de construction d'injection disponibles.