2016-08-03 16 views
0

Ich muss loadtesting Ergebnisse erhalten: Ich sende den Server (Post) Info über mich (Benutzer-ID und Spielname) und der Server weist mir einen Spieler-Handle und eine Session-ID. Ich möchte diese zurückbekommen, aber das Problem ist, dass ich sie nur in der URL finden kann (sie erscheinen so: url.com/#playerhandle=number & sessionid = number) und kann sie anscheinend nicht mit Artillerie abrufen.bekommen testloading Ergebnisse in Artillerie

{ 
"config": { 
    "target": "sever/game", 
    "phases": [ 
     {"duration": 10, "arrivalRate": 200} 
    ] 
}, 
"scenarios": [ 
    { 
     "name": "test1", 
     "flow": [ 
      {"post": { 
       "url": "/initialize", 
       "json": {"userId": "{{ Date.now() }}", "gameName": "game_Blood"} 
      } 
     }, 
      {"get": { 
       "url": "/initialize", 
       "body": "playerHandle={{ ph }}&sessionId={{ sid }}" 
      }} 
     ] 
    } 
] 

}

Dies ist, was ich so weit gekommen. Offensichtlich funktioniert das nicht. Irgendein Rat?

Antwort

2

ein paar Probleme mit dem Skript Es gibt die sofort herausspringen:

  1. Date.now() wird in einer Vorlage verwendet wird - die nicht als willkürliche JS Ausdrücke werden nicht unterstützt wird funktionieren. Der Wert für userId könnte stattdessen aus einer externen CSV-Datei eingelesen werden, siehe Dokumentation unter reading variables from a file.
  2. Wenn die Sitzungs-ID und das Player-Handle nur in der URL verfügbar sind (kann der Server diese URL nach der POST-Anfrage weiterleiten?), Können diese mit einer afterResponse hook - response.headers.location URL extrahiert werden. Sobald die erforderlichen Werte extrahiert sind, können sie für nachfolgende Anforderungen verfügbar gemacht werden, indem neue Werte in context.vars eingefügt werden.