Testplan
Postman scripts
De specificatie noemt expliciet: service metadata met
supportedOperationsensupportedExpands, aparte offering-typen in plaats van één generiek offering-endpoint, specifieke association-endpoints en deprecated paden zoalsassociations,componentsennews. QueryparameterspageSize,pageNumber,fields,search,filterQuery,sinceenuntilzijn onderdeel van het model.
Standaard testscripts
Basisscript voor status en JSON
pm.test("Status code is success", function () {
pm.expect(pm.response.code).to.be.oneOf([200, 201]);
});
pm.test("Response is JSON", function () {
pm.expect(pm.response.headers.get("Content-Type")).to.include("application/json");
});
pm.test("Response body is not empty", function () {
pm.expect(pm.response.text()).to.not.be.empty;
});
Id-validatie voor detail-endpoints
const jsonData = pm.response.json();
pm.test("Returned object has id", function () {
pm.expect(jsonData).to.have.property("id");
});
pm.test("Returned id matches requested id", function () {
const requestedId = pm.variables.get("courseId") || pm.variables.get("programmeId");
if (requestedId) {
pm.expect(jsonData.id).to.eql(requestedId);
}
});
Collection-validatie
const jsonData = pm.response.json();
pm.test("Collection response is an object or array", function () {
pm.expect(jsonData).to.exist;
});
pm.test("Collection contains items", function () {
const items = jsonData.items || jsonData.results || jsonData._embedded || jsonData;
pm.expect(items).to.exist;
});
Paging-validatie
const jsonData = pm.response.json();
const items = jsonData.items || jsonData.results || [];
pm.test("Page contains expected number of items", function () {
pm.expect(items.length).to.eql(1);
});
Sparse fields-validatie
const jsonData = pm.response.json();
const item = (jsonData.items && jsonData.items[0]) ? jsonData.items[0] : jsonData;
pm.test("Only expected fields are present", function () {
const allowed = ["id", "name"];
Object.keys(item).forEach(key => {
pm.expect(allowed).to.include(key);
});
});
404 / 400 foutvalidatie
pm.test("Status is client error", function () {
pm.expect(pm.response.code).to.be.oneOf([400, 404]);
});
pm.test("Error body is present", function () {
pm.expect(pm.response.text()).to.not.be.empty;
});
Pre-request script voor Bearer token
pm.request.headers.upsert({
key: "Authorization",
value: "Bearer " + pm.environment.get("authToken")
});
Handige Postman checks voor regressie
Opslaan van id uit list-response
Bijvoorbeeld na GET /courses:
const jsonData = pm.response.json();
const items = jsonData.items || jsonData.results || jsonData;
if (items && items.length > 0) {
pm.environment.set("courseId", items[0].id);
}
Opslaan van associationId na POST
const jsonData = pm.response.json();
if (jsonData.id) {
pm.environment.set("associationId", jsonData.id);
}