2016-11-18 15 views
1

mein Szenario ist wie, ich muss ein Skript für erstellen, die nach dem Zufallsprinzip 10 Benutzer zum Anmelden und Abmelden. Der Code, den ich geschrieben habe, loggt den gleichen Benutzer 10 mal es nimmt keine Zufallszahl. Wie geht das?Wie Login mit zufälligen Benutzer jedes Mal mit Gatling?

Unten ist mein Code gibt die gleiche Benutzeranmeldung 10 Mal statt, verschiedene Benutzer zu nehmen.

// Login and Logout random users 
import scala.concurrent.duration._ 
import java.util.concurrent.ThreadLocalRandom 
import io.gatling.core.Predef._ 
import io.gatling.http.Predef._ 
import io.gatling.jdbc.Predef._ 

class random extends Simulation { 

val testServerUrl = System.getProperty("Url", "https://url") 
val username = System.getProperty("username", "TestUser") 
val password = System.getProperty("password", "password") 
val userCount = Integer.getInteger("userCount", 10).toInt 
val startNum = Integer.getInteger("EndNumber", 1).toInt 
val endNum = Integer.getInteger("EndNumber", 100).toInt 

val httpProtocol = http 
.baseURL(testServerUrl) 

val scn = scenario("random") 
.exec(http("Login") 
.post("/security_check") 
.headers(headers_9) 
.formParam("j_username", username + ThreadLocalRandom.current.nextInt(startNum, endNum)) 
.formParam("j_password", password) 
.resources(
http("Fetch_IDs") 
.get("/desktop/s_nav.jsp") 
.check(regex("""current_account_id=(\d+)""").saveAs("accountID")) 
.check(regex("""current_workspace_id=(\d+)""").saveAs("workspaceID")) 
.headers(headers_5) 
)) 

.exec(http("Logout") 
.post("/logoutcontroller") 
.headers(headers_9) 
.formParam("action", "logout") 
.formParam("undefined", "") 
.formParam("current_account_id", "${accountID}") 
.formParam("current_workspace_id", "${workspaceID}")) 

setUp(scn.inject(atOnceUsers(userCount))).protocols(httpProtocol) 
} 

Antwort

3
.formParam("j_username", session => username + ThreadLocalRandom.current.nextInt(endNum)) 
1

Das Problem ist, dass Ihr Zufallsgenerator innerhalb des Szenarios val nur einmal aufgerufen wird, wenn das Szenario generiert wird.

Was Sie tun möchten, ist eine Zuführung, die zufällige Werte in jeder Ausführung Ihres Szenarios injiziert.

Gatling hat eine sehr schöne Dokumentation mit Beispielen für Feeder, die Sie hier finden: http://gatling.io/docs/2.0.0-RC2/session/feeder.html

und hier (Schritt 03): http://gatling.io/docs/2.0.0-RC2/advanced_tutorial.html

Verwandte Themen