2017-11-17 3 views
0

Ich bin auf der Suche nach der Antwort Körper dynamisch zu überprüfen. Ich habe einen Endpunkt, der abhängig von den Benutzerberechtigungen verschiedene Körper zurückgibt. Zum Beispiel:Erstellen Sie dynamische Prüfungen in Gatling

user: a 
{ 
    "one": "a", 
    "two": "b" 
} 

user: b 
{ 
    "one": "a", 
    "three": "c" 
} 

Ich weiß, dass ich jsonPath zu prüfen ob ein json Feld existiert oder nicht in dieser Art und Weise verwenden kann:

http("Request") 
    .get(url) 
    .header(user_a_token) 
    .check(jsonPath("one").exists) 
    .check(jsonPath("two").exists) 
    .check(jsonPath("three").notExists) 

Allerdings mag ich es konfigurierbar machen, eine Einzug oder etwas wie:

http("Request") 
    .get(url) 
    .header(user_token) 
    // iterate a list of Strings with the json field names 

Gedanken?

Antwort

0

Ich habe endlich einen Weg gefunden, mit dieser Anforderung umzugehen.

Zunächst einmal müssen Sie eine Liste der Kontrollen definieren:

val jsonPathChecks: List[HttpCheck] = List(jsonPath("one").exists, jsonPath("two").exists, jsonPath("three").exists) 

Und dann verwenden:

http("Request") 
    .get(url) 
    .header(user_token) 
    .check(jsonPathChecks: _*) 

Der _ * Operator zuständig ist macht die Magie passiert.