Closed toguvr closed 1 year ago
Don't know if it's still relevant but here is the solution I've found.
If you don't get the body in req.body for your server, it's most likely due to the fact that loadtest
sends raw body by chunks
Therefore you need to read it like this also
Here is the code for your node.js express server that will help:
app.use(function(req, res, next) {
req.rawBody = '';
req.setEncoding('utf8');
req.on('data', function(chunk) {
req.rawBody += chunk;
});
req.on('end', function() {
next();
});
});
You can add it to all the routes with .use or just a single route by passing it as the middleware function
With this added you can get the req.body via accessing req.rawBody for your route
Thanks for the answer, closing.
i am trying to do a request test but my body isnt sending...
` const loadtest = require("loadtest"); function contentInspector(result) { if (result.statusCode == 200) { const body = JSON.parse(result.body); // how to examine the body depends on the content that the service returns if (body.status.err_code !== 0) { result.customError = body.status.err_code + " " + body.status.msg; result.customErrorCode = body.status.err_code; console.log(result.customErrorCode); } } }
const body = { email: "augusto@gmail.com", password: "123456", };
const options = { url: "https://localhost:3000/sessions", maxRequests: 10, concurrency: 20, method: "POST", requestsPerSecond: 500, contentInspector, body, };
loadtest.loadTest(options, function (error, result) { console.log(result); if (error) { return console.error("Got an error: %s", error); } console.log("Tests run successfully"); });
`