Skip to content

Instantly share code, notes, and snippets.

@mike-seger
Created June 27, 2024 05:42
Show Gist options
  • Save mike-seger/09081da393437aa1f495bbbece56c5f0 to your computer and use it in GitHub Desktop.
Save mike-seger/09081da393437aa1f495bbbece56c5f0 to your computer and use it in GitHub Desktop.
// URL endpoints
const getUrl = 'https://example.com/api/get';
const postUrl = 'https://example.com/api/post';
// Number of requests
const numberOfRequests = 1000;
// Function to perform a GET request
const makeGetRequest = async () => {
try {
const response = await fetch(getUrl);
if (!response.ok) {
console.error('GET request failed:', response.status, response.statusText);
}
} catch (error) {
console.error('GET request failed:', error);
}
};
// Function to perform a POST request
const makePostRequest = async () => {
try {
const response = await fetch(postUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ data: 'sample data' })
});
if (!response.ok) {
console.error('POST request failed:', response.status, response.statusText);
}
} catch (error) {
console.error('POST request failed:', error);
}
};
// Function to perform all requests in parallel
const loadTest = async () => {
const getRequests = Array.from({ length: numberOfRequests }, () => makeGetRequest());
const postRequests = Array.from({ length: numberOfRequests }, () => makePostRequest());
// Run all requests in parallel
await Promise.all([...getRequests, ...postRequests]);
console.log('Load test completed');
};
// Start the load test
loadTest();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment