2017-05-04 3 views
0

Ich möchte Gatling einrichten, so dass ich in einem Setup 3000 Anfragen senden kann, von denen 95% eine Testdatei und 5% eine andere Testdatei verwenden. Diese Dateien werden als JSON-Dateien (so genannte ‚userFeeder‘ in folgenden Code abgerufen werden. Kann Gatling das oben beschriebene Szenario unterstützen?Einstellung Gatling zu senden Anfragen basierend auf Prozent/Ratios?

Der Code ist zur Zeit wie folgt, die für eine Anfrage pro Sekunde Ansatz funktioniert, muss aber zur Änderung.

class AddUserSimulation extends Simulation { 

    private val conf = ConfigFactory.load() //loads a setup file of parameters 
    private val TOKEN_VALUE = "tokenvalue" 
    private val userFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser.json") 

    val httpConf = http 
    .baseURL(conf.getString("api.gateway.url")) // Here is the root for all relative URLs 
    .header("Referer", conf.getString("referer")) 
    .header("Cache-Control", "no-cache") 
    .contentTypeHeader("application/json") 

    val Login = new ADFSAuthentication Login 

    val scnAPI = scenario("test add User") // A scenario is a chain of requests and pauses 
    .feed(userFeeder.circular) 
    .exec(Login.process) 
    .repeat(conf.getInt("repeat.count")) { 
     exec(http("test add User") 
     .post("/" + conf.getString("environment") + "https://stackoverflow.com/users/") 
     .body(StringBody("${payload}")).asJSON 
     .header("Authorization", "Bearer ${"+TOKEN_VALUE+"}") 
    .check(status.is(200))) 
    .pause(conf.getInt("execution.pause")) 
    } 
    setUp(scnAPI.inject(constantUsersPerSec(11) during(30 minutes)).protocols(httpConf)) 
} 

Jede Hilfe sehr geschätzt.

Antwort

0

Sure! zuerst Ihre beiden Zubringer einzurichten. Dann werden zwei Szenarien einrichten, eine der ersten Einzugs, eines der zweiten Einzugs. setUp schließlich sowohl mit der Anzahl der Benutzer, die Sie Wunsch (entsprechend Ihrer Verteilung).

Der Code könnte wie folgt aussehen:

private val firstFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser.json") 
private val secondFeeder = jsonFile("/" + conf.getString("environment") + "/testaddUser2.json") 

val scnAPI = scenario("test add User") 
    .feed(firstFeeder) 
    //... 

val scnAPI2 = scenario("second test add User") 
    .feed(secondFeeder) 
    //... 

setUp(scnAPI.inject(constantUsersPerSec(95) during(30 minutes)).protocols(httpConf), 
     scnAPI2.inject(constantUsersPerSec(5) during(30 minutes)).protocols(httpConf)) 

Hinweis: Dies wird nicht genau 3000 Anfragen erstellen, aber ich denke, Sie bekommen die Idee.

+0

Das ist genau das, was wir schließlich verwendet haben. Danke für diesen Input, mit zwei Feedern war die Lösung. – user3190153

Verwandte Themen