slogan3

Automatiseer het Validatieproces van API Antwoorden in Postman of Insomnia

description

Met deze prompt kun je automatische controles implementeren die fouten en afwijkingen in API antwoorden snel opsporen, wat tijd bespaart en de betrouwbaarheid van je API-tests verhoogt. Het is effectiever dan handmatige validatie en helpt bij het voorkomen van productieproblemen door vroegtijdige foutdetectie.

prompt

Help me met het automatisch valideren van API antwoorden in <kies Postman of Insomnia>. Ik wil regels instellen voor het controleren van de structuur, datatypes en inhou ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorbeeld van een testscript in Postman dat automatisch de structuur, datatypes en inhoud van de API-responses voor jouw endpoint https://api.mijnbedrijf.nl/users controleert. Plaats dit script onder het tabblad "Tests" in je Postman-request: ```javascript // Response body parsen let jsonData = pm.response.json(); // Controleer of de response een array is pm.test("De response is een array", function () { pm.expect(jsonData).to.be.an('array'); }); // Controleer of elk item in de array de verwachte structuur heeft jsonData.forEach(function(user, index) { pm.test(`Gebruiker ${index + 1} bevat de juiste velden`, function () { // Controleer of 'id' bestaat en een nummer is pm.expect(user).to.have.property('id'); pm.expect(user.id).to.be.a('number'); // Controleer of 'name' bestaat en een string is pm.expect(user).to.have.property('name'); pm.expect(user.name).to.be.a('string'); // Controleer of 'email' bestaat en een string is pm.expect(user).to.have.property('email'); pm.expect(user.email).to.be.a('string'); // Optioneel: controleer de inhoud van email op een geldig email formaat pm.expect(user.email).to.match(/^[^\s@]+@[^\s@]+\.[^\s@]+$/); }); }); ``` **Wat doet dit script?** - Controleert of de response een array is. - Loopt door elk item in de array en controleert of het de juiste velden bevat (`id`, `name`, `email`). - Verifieert dat deze velden van het juiste datatype zijn. - Optioneel: controleert of het emailadres een geldig formaat heeft. **Aanvullende tips:** - Je kunt meer regels toevoegen, zoals het controleren van specifieke inhoud (bijvoorbeeld dat `name` niet leeg is, of dat `id` binnen een bepaald bereik ligt). - Voor complexere structuren kun je geneste objecten controleren door dieper te testen. Zo detecteer je automatisch fouten in je API-responses en houd je je API consistent en betrouwbaar.
provider: deepseek
model: deepseek-chat
Zeker, ik help je met het automatisch valideren van API-responses in Postman. Hier zijn praktische voorbeelden voor je endpoint `https://api.mijnbedrijf.nl/users`: ## 1. Basis Response Structuur Validatie ```javascript // Test of de response de verwachte structuur heeft pm.test("Response heeft correcte structuur", function () { const response = pm.response.json(); // Controleer of response een array is pm.expect(Array.isArray(response)).to.be.true; // Optioneel: controleer of array niet leeg is (afhankelijk van je use case) pm.expect(response.length).to.be.above(0); }); ``` ## 2. Datatype Validatie voor Gebruikersobjecten ```javascript // Valideer datatypes voor elk gebruikerobject pm.test("Gebruikers hebben correcte datatypes", function () { const users = pm.response.json(); users.forEach((user, index) => { // Basis datatype checks pm.expect(user).to.be.an('object', `Gebruiker ${index} is geen object`); pm.expect(user.id).to.be.a('number', `Gebruiker ${index} id is geen number`); pm.expect(user.name).to.be.a('string', `Gebruiker ${index} name is geen string`); pm.expect(user.email).to.be.a('string', `Gebruiker ${index} email is geen string`); // Optionele velden (indien aanwezig) if (user.hasOwnProperty('age')) { pm.expect(user.age).to.be.a('number', `Gebruiker ${index} age is geen number`); } }); }); ``` ## 3. Inhoudelijke Validatie ```javascript // Valideer specifieke inhoudelijke regels pm.test("Inhoudelijke validatie", function () { const users = pm.response.json(); users.forEach((user, index) => { // Email format validatie pm.expect(user.email).to.match( /^[^\s@]+@[^\s@]+\.[^\s@]+$/, `Gebruiker ${index} heeft geen geldig email format` ); // ID moet positief zijn pm.expect(user.id).to.be.above(0, `Gebruiker ${index} id is niet positief`); // Naam mag niet leeg zijn pm.expect(user.name.trim().length).to.be.above(0, `Gebruiker ${index} naam is leeg`); }); }); ``` ## 4. Response Header Validatie ```javascript // Valideer response headers pm.test("Headers zijn correct", function () { pm.expect(pm.response.headers.get('Content-Type')).to.include('application/json'); pm.expect(pm.response.headers.has('Content-Length')).to.be.true; pm.expect(pm.response.code).to.equal(200); }); ``` ## 5. Performance Test ```javascript // Response time validatie pm.test("Response time is acceptabel", function () { pm.expect(pm.response.responseTime).to.be.below(1000); // Max 1 seconde }); ``` ## 6. Uitgebreide Foutrapportage ```javascript // Gedetailleerde foutrapportage try { const users = pm.response.json(); if (!Array.isArray(users)) { throw new Error("Response is geen array"); } users.forEach((user, index) => { const requiredFields = ['id', 'name', 'email']; requiredFields.forEach(field => { if (!user.hasOwnProperty(field)) { throw new Error(`Gebruiker ${index} mist verplicht veld: ${field}`); } }); }); console.log("✅ Alle validaties geslaagd"); } catch (error) { console.error("❌ Validatie fout:", error.message); // Markeer test als gefaald pm.test(`Validatie mislukt: ${error.message}`, function () { pm.expect.fail(error.message); }); } ``` ## 7. Configuratie als Collection Test Voeg deze tests toe aan je Collection zodat ze automatisch runnen: 1. Open je Collection in Postman 2. Ga naar "Tests" tab 3. Plak de gewenste validaties 4. Sla op ## Gebruik in CI/CD: ```bash # Run tests met Newman (Postman CLI) newman run your-collection.json \ --env-var "baseUrl=https://api.mijnbedrijf.nl" \ --reporters cli,json \ --reporter-json-export test-results.json ``` ## Tips: - Gebruik `pm.environment.set()` om variabelen op te slaan voor volgende requests - Maak gebruik van `pm.response.to.have.status(200)` voor status checks - Gebruik `pm.expect().to.match()` voor regex validatie - Log gedetailleerde fouten met `console.error()` voor betere debugging Deze tests zullen automatisch fouten detecteren en duidelijke foutmeldingen tonen in de Postman test results.