Als u nog niet bekend bent met assertions of variabelen, raden we u aan de artikelen Assertions en Variabelen te lezen voor een overzicht van hoe ze werken en functioneren. In dit artikel wordt uitgelegd uit hoe u de velden source en property kunt gebruiken om de API-response te valideren.
De velden source
en property
gaan hand in hand om te identificeren waar de API-response vandaan komt en welke inhoud moet worden gecontroleerd. De source is het beginpunt van waaruit naar de data moet worden verwezen. De property verwijst naar de specifieke inhoud die moet worden gevalideerd.
Deze velden zijn beschikbaar in Response voor zowel Assertions als Variabelen:
Hieronder vindt u de beschikbare sources en hoe u de bijbehorende propertywaarde kunt invullen.
Response body als JSON
Selecteer dit sourcetype als u een API-response in JSON-formaat verwacht te ontvangen. Geef in het propertyveld het JSON-element op dat u wilt inspecteren of extraheren.
Voorbeelden
Neem bijvoorbeeld de volgende JSON-response:
{
"access_token":"MjAxNy0xMC0wMlQxMDoxMDoyNy42NDkwOTEzWg==",
"token_type":"Bearer",
"expires_in":86400
}
Om de waarde MjAxNy0xMC0wMlQxMDoxMDoyNy42NDkwOTEzWg==
vast te leggen, gebruikt u de access_token
als propertywaarde.
Als het object dat de access_token
-sleutel bevat een onderliggend object is van een ander JSON-object, specificeert u het volledige JSON-pad. Gebruik in dit geval response.access_token
als de propertywaarde:
{
"response":{
"access_token":"MjAxNy0xMC0wMlQxMDoxMDoyNy42NDkwOTEzWg==",
"token_type":"Bearer",
"expires_in":86400
}
}
Als uw JSON-data een array bevat met een of meer elementen en u de prijs van het eerste element wilt vastleggen (bijvoorbeeld: 20000), specificeer dan de index gevolgd door de attributenaam. De index van een array begint altijd met nul: [0]
. In dit geval moet het propertyveld [0].Price
zijn om de waarde van 20000
op te halen.
[
{
"Name": "Alpha Cygnus IX",
"Price": 20000,
},
{
"Name": "Norcadia Prime",
"Price": 25000,
},
{
"Name": "Risa",
"Price": 37500,
}
]
Als uw JSON een array bevat als onderliggend object van een ander object, moet u elk pad specificeren, inclusief de index voor het element in de array. Stel dat uw JSON iets bevat dat lijkt op:
{
"Destinations":[
{
"Name":"Alpha Cygnus IX",
"Price":20000
},
{
"Name":"Norcadia Prime",
"Price":25000
},
{
"Name":"Risa",
"Price":37500
}
]
}
In dit geval kan de waarde voor de eerste Name
worden vastgelegd met Destinations.[0].Name
, wat Alpha Cygnus IX
is.
Response body als XML
Selecteer dit sourcetype als u een API-response in XML-formaat verwacht te ontvangen. U kunt vervolgens een XPath-query opgeven om specifieke inhoud vast te leggen.
Voorbeelden
Neem bijvoorbeeld de volgende XML-response:
<AuthInfo>
<access_token>MjAxNy0xMC0wMlQxMDowOTo1My45MDUxNjEyWg==</access_token>
<expires_in>86400</expires_in>
<token_type>Bearer</token_type>
</AuthInfo>
Om de waarde MjAxNy0xMC0wMlQxMDowOTo1My45MDUxNjEyWg==
vast te leggen, gebruikt u de XPath-query /AuthInfo/access_token/text()
als de propertywaarde. Voor meer informatie over XPath, inclusief SOAP XML, raadpleegt u het artikel
XPath-voorbeelden.
Response body als tekst
Selecteer dit sourcetype als uw response niet in JSON- of XML-formaat is. Deze optie kan platte tekst, een HTML-bestand of een eigen formaat verwerken om de volledige inhoud te gebruiken.
Dit sourcetype is van toepassing wanneer u een eenvoudige contains-operation wilt uitvoeren, zoals controleren of de response body de tekst Price
bevat. De controle slaagt zolang de tekst Price
ergens in de inhoud voorkomt. Als u de volledige inhoud wilt gebruiken of wilt toewijzen in een
variabele, laat u het propertyveld leeg.
Als u inhoud wilt inspecteren of extraheren van een specifieke locatie in het document, specificeert u een reguliere expressie in het propertyveld. Dit gebruikt een patroon-regex om de specifieke waarde uit uw inhoud vast te leggen.
Als de reguliere expressie een capturing-groep bevat, een patroon tussen haakjes, wordt de eerste match voor die capturing-groep gebruikt.
Statuscode
Deze optie controleert de numerieke HTTP-statuscode in elke response, zodat u fouten en hun statuscodes kunt identificeren.
Uptrends controleert standaard automatisch op 4xx- en 5xx-codes. Er wordt altijd gecontroleerd of de Statuscode
kleiner is dan
400
, zelfs als u geen statuscode opgeeft.
Als u zelf een statuscode definieert, overschrijft deze onze standaardcontrole. Als u bijvoorbeeld Statuscode
is gelijk aan
200
definieert, controleren we precies die voorwaarde.
Statusomschrijving
Deze optie controleert de tekstuele beschrijving van de HTTP-statuscode (formeel de Reason-Phrase genoemd). Het biedt extra context bij het verifiëren van bepaalde API-foutcondities. Bijvoorbeeld bij het bevestigen dat u correcte invoer heeft verstrekt, wordt er een nuttige statusomschrijving geretourneerd.
Response compleet
Deze optie retourneert altijd een booleaanse waarde die aangeeft of de HTTP-request succesvol is voltooid.
De response retourneert false
als een van de volgende situaties zich voordoet:
- De server waarmee verbinding moet worden gemaakt, kan niet worden bepaald.
- De server reageert niet tijdig met een HTTP-response.
- Er kan geen verbinding tot stand worden gebracht.
Anders wordt true
geretourneerd.
In de meeste gevallen hoeft u deze optie niet te specificeren, omdat wij deze automatisch voor u controleren: Response compleet
Is gelijk aan
true
.
Op basis van het sourcetype rapporteren we een fout als er geen HTTP-response kan worden opgehaald van uw server.
In sommige gevallen is het mogelijk om deze controle om te draaien. Als u false
opgeeft, controleren we of het niet mogelijk is om een succesvolle response te ontvangen. Dit kan handig zijn als u een webapplicatie of API heeft die alleen binnen uw netwerk beschikbaar zou moeten zijn, zelfs als de bijbehorende domeinnaam openbaar beschikbaar is. Met deze controle verifiëren we dat we uw API of webapp niet kunnen bereiken.
Response header
Met deze optie kunt u een specifieke HTTP-response header inspecteren. U moet de naam van die header opgeven in het propertyveld.
Cookie
Deze optie retourneert de huidige waarde van een cookie. U moet de naam van die cookie opgeven in het propertyveld. Cookies die door uw server worden geretourneerd, worden behandeld worden als sessiecookies: cookiewaarden worden bewaard, bijgewerkt en teruggestuurd naar uw server tijdens de uitvoering van het volledige scenario, tot aan de laatste stap.
Alle cookies worden vervolgens verwijderd, ongeacht de vervalrichtlijnen, wat betekent dat permanente cookies worden behandeld als sessiecookies.
Content length
Deze optie retourneert de grootte van de response body in bytes. Als de server de response in een gecomprimeerd formaat verzendt, weerspiegelt de waarde de oorspronkelijke inhoudslengte na decompressie.
Duur
Deze optie retourneert de totale tijd, in milliseconden, die nodig was om de request uit te voeren en de response te ontvangen. Hiermee kunt u de performance van afzonderlijke stappen monitoren.