Ich habe REST Assured im vorherigen "REST API-Test mit REST Assured" verwendet. Ich habe eine Einführung in das Schreiben von REST-API-Tests geschrieben. Das letzte Mal habe ich es nur berührt, aber dieses Mal werde ich mehr praktische Inhalte schreiben.
Beschreiben Sie die Verwendung der Analysemethode in JSONPath. Die Anforderung wird wie gewohnt mit "Given (). Get ()" oder "Given (). Post ()" ausgelöst, und die Antwort wird nach "then ()" analysiert.
@Test
öffentlicher Leertest() {
given()
.get("/v1/clients/15930/account-periods")
.then()
.body("accountPeriods", hasSize(3))
.body("accountPeriods.accountPeriodId", hasItems(24216, 24582, 24583))
.body("accountPeriods[0].accountPeriodId", equalTo(24216))
;
}
hasSize ()
undhasItem ()
,gleichTo ()
sindstatische org.hamcrest.Matchers importieren. *; Sie können es aufrufen, indem Sie
einstellen.
Das Parsen von JSON mit JSONPath folgt im Wesentlichen aus Root mit .
als Trennzeichen.
Es gibt verschiedene Notationen, bitte probieren Sie sie aus.
Im vorherigen Beispiel wird die Antwort direkt bestätigt, aber ich werde eine Methode schreiben, um sie einmal als Variable zu empfangen.
@Test
öffentlicher Leertest() {
String response = get("/v1/clients/15930/account-periods").asString(); //Empfangen Sie ResponseBody als String
int id = from(response).get("accountPeriods[0].accountPeriodId"); //Als JSON analysieren und das Ziel mit JSONPath abrufen
out.println(id);
}
Wirf eine Anfrage direkt mit get ()
und erhalte das Ergebnis als String alsasString ()
.
Analysieren Sie es dann als JSON mit from (String)
und verwenden Sie dann JSONPath mit get ()
, um den angegebenen Teil im JSON abzurufen.
Sie können es auf diese Weise schreiben, z. B. wenn Sie den Wert der Antwort in die nächste Anforderung aufnehmen möchten.
Als nächstes werde ich die Variation erklären, wie eine Anfrage geworfen wird.
Die erste Methode zur Verwendung des Pfadparameters von URI besteht darin, den variablen Teil mit einem Argument variabler Länge zu übergeben. Befolgen Sie die Offizielle Dokumentation zu Pfadparametern.
Hier wird auch das Anforderungsprotokoll ausgespuckt.
@Test
public void path parameter() {
given()
.log()
.all()
.get("/v1/clients/{id}/account-periods", 15930)
.then()
.body("accountPeriods", hasSize(3))
;
}
In dem Teil mit "get (" / v1 / clients / {id} / account-period ", 15930)" wird das Argument "15930" auf den Teil mit "{id}" und "/ v1 / clients / 15930" angewendet Die GET-Methode wird für / account-period` aufgerufen.
Da es auf "log (). All ()" gesetzt ist, wird das Requst-Protokoll an die Standardausgabe ausgegeben und kann überprüft werden.
Erklärt, wie Pfadparameter in Map übergeben werden. Übergeben Sie Map als Argument als "get (" / v1 / clients / {id} / {api} ", params)", rufen Sie den Wert von Map mit den Variablen "id", "api" im Pfad als Schlüssel ab und übergeben Sie Ist zusammengebaut.
@Test
public void Path Parameta Map() {
Map<String, String> params = new HashMap<String, String>();
params.put("id", "15930");
params.put("api", "account-periods");
given()
.log()
.all()
.get("/v1/clients/{id}/{api}", params)
.then()
.body("accountPeriods", hasSize(3))
;
}
Erklärt, wie JSON in Request aufgenommen wird, was in der REST-API üblich ist.
Genau wie Offizielle Dokumentation zu Request Body können Sie JSON im Argument von body ()
festlegen. ist.
Da die Protokollausgabe von Request ebenfalls festgelegt ist, können Sie überprüfen, ob sie tatsächlich POSTED wurde.
private static String postJson = "{sessionId: \"abc\"}";
@Test
öffentlicher nichtiger JSON-Übertragungstest() {
given()
.log() //Ausloggen
.all() //Alles
.body(postJson) //Body-Einstellungen anfordern
.post("/v1/clients/15930/account-periods")
.then()
.log()
.body()
;
}
Wir haben einige Beispiele mit REST Assured eingeführt. In der Realität werden verschiedene Muster zum Testen benötigt, aber der Name, der die API intuitiv macht und offizielles Dokument Assured / wiki / Usage) ist so reichhaltig, dass Sie sich nicht verlaufen.
Sitzungsfilter, der zum Zeitpunkt der Authentifizierung eine Routineverarbeitung ausführt, und [Protokollierung](https: /), die ebenfalls im Beispiel verwendet wurde /github.com/rest-assured/rest-assured/wiki/Usage#logging), [Validierung des JSON-Schemas](https://github.com/rest-assured/rest-assured/wiki/Usage#json-schema- Validierung) usw. werden ebenfalls erläutert. Bitte lesen Sie die offizielle Dokumentation und probieren Sie es aus.
Recommended Posts