Syntax Error with Parse

Hello, I got a task to POST against the API and catch an ID which I believe I have figured out.
Then I need to use this ID doing a GET against the API.
Then verify the http status code and verify if I have also gotten street address and postcode.
But I am getting an error, can you please help me set this up. Please see my code below (and task attached in swedish).

This is the feedback I get:
INFO[0001] User ID: 0400540060 source=console
ERRO[0001] SyntaxError: invalid character ‘R’ looking for beginning of value
running at parse (native)
default at file:///Users/sonno/Documents/K6-script/specs/testpostgetapi.js:44:35(76) executor=per-vu-iterations scenario=default source=stacktrace
✓ Status is 201
✓ 404 Not Found

CODE:

import http from ‘k6/http’;
import { check } from ‘k6’;

export default function () {
// Definiera URL för API
const apiUrl = ‘https://r7dk2.wiremockapi.cloud/arbetssokande’;

// Send a POST request to the API
const payload = {
    namn: 'förnamn efternamn',
    personnummer: '12 siffror',
    // Add the desired data for the POST request
};

// Utför POST-förfrågan och fånga responsen
const response = http.post(apiUrl, JSON.stringify(payload), {
    headers: {
        'Content-Type': 'application/json',
    },
});

// Verifiera HTTP-statuskoden för POST-förfrågan
check(response, {
    'Status is 201': (r) => r.status === 201,
});

// Analysera och extrahera ID från responsen (antagande: responsen är i JSON-format)
const responseData = JSON.parse(response.body);
const userId = responseData.id;

// Skriv ut det erhållna ID:t
console.log(`User ID: ${userId}`);

// Utför en GET-förfrågan med det fångade användar-ID:t
const getUserUrl = `${apiUrl}/${userId}`;
const getResponse = http.get(getUserUrl);

// Verifiera HTTP-statuskoden för GET-förfrågan
check(getResponse, {
    '404 Not Found': (r) => r.status === 404,
});

// Analysera och verifiera att gatuadress och postnummer finns med i svaret (anpassa beroende på API-svar)
const getUserData = JSON.parse(getResponse.body);
check(getUserData, {
    'gatuadress': () => getUserData.gatuadress !== undefined,
    'postnummer': () => getUserData.postnummer !== undefined,
});

}

Hi @mrbhagwani

This happens because of the response for the GET request is 404, and its body is not json.

please use:

const getUserUrl = `${apiUrl}?id=${userId}`;

instead of:

const getUserUrl = `${apiUrl}/${userId}`;

I hope it helps

1 Like