2016-04-04 7 views
1

Ich versuche, ein Gatling-Szenario zu erstellen, das während des Tests das Protokoll zu einem anderen Host wechseln muss. Der Benutzer Reise istGatling Switch-Protokolle während des Szenarios

https://example.com/page1 
https://example.com/page2 
https://accounts.example.com/signin 
https://example.com/page3 

so als Teil eines einzigen Szenarios, ich brauche die im Szenario einrichten definiert Ether wechseln, oder schalen Sie die baseUrl auf dem Protokoll definiert, aber ich kann nicht herausfinden, wie man TU das.

könnte ein Basisszenario aussehen

package protocolexample 

import io.gatling.core.Predef._ 
import io.gatling.http.Predef._ 

class Example extends Simulation { 
    val exampleHttp = http.baseURL("https://example.com/") 
    val exampleAccountsHttp = http.baseURL("https://accounts.example.com/") 

    val scn = scenario("Signin") 
    .exec(
     http("Page 1").get("/page1") 
    ) 
    .exec(
     http("Page 2").get("/page2") 
    ) 
    .exec(
     // This needs to be done against accounts.example.com 
     http("Signin").get("/signin") 
    ) 
    .exec(
     // Back to example.com 
     http("Page 3").get("/page3") 
    ) 

    setUp(
    scn.inject(
     atOnceUsers(3) 
    ).protocols(exampleHttp) 
) 
} 

Ich muss nur herausfinden, wie die Host-oder Protokoll für den dritten Schritt Ether wechseln. Ich weiß, dass ich mehrere Szenarien erstellen kann, aber dies muss ein einzelner Benutzerfluss über mehrere Hosts sein.

Ich habe direkt versucht, das andere Protokoll

exec(
    // This needs to be done against accounts.example.com 
    exampleAccountsHttp("Signin").get("/signin") 
) 

die

in Ergebnisse
protocolexample/example.scala:19: type mismatch; 
found : String("Signin") 
required: io.gatling.core.session.Session 
     exampleAccountsHttp("Signin").get("/signin") 

und auch die Basis-URL zu ändern auf die Anfrage

exec(
    // This needs to be done against accounts.example.com 
    http("Signin").baseUrl("https://accounts.example.com/").get("/signin") 
) 

, die in

Ergebnisse
protocolexample/example.scala:19: value baseUrl is not a member of io.gatling.http.request.builder.Http 
+0

@Meiko Hallo, ja Entschuldigung für die Verzögerung. Als akzeptiert markiert – Smudge

Antwort

3

Sie können einen absoluten URI (inklusive Protokoll) als Parameter für Http.get, Http.post und so weiter verwenden.

class Example extends Simulation { 
    val exampleHttp = http.baseURL("https://example.com/") 
    val scn = scenario("Signin") 
    .exec(http("Page 1").get("/page1")) 
    .exec(http("Page 2").get("/page2")) 
    .exec(http("Signin").get("https://accounts.example.com/signin")) 
    .exec(http("Page 3").get("/page3")) 
    setUp(scn.inject(atOnceUsers(3)) 
    .protocols(exampleHttp)) 
} 

siehe: http://gatling.io/#/cheat-sheet/2.1.7

baseURL: die URL-Basis-Sets allen relativen URLs des Szenarios, auf das die Konfiguration angewandt wird.