MCPcopy Create free account
hub / github.com/PrairieLearn/PrairieLearn / main

Function main

tools/load-test.js:281–308  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

279}
280
281async function main() {
282 try {
283 let results = [];
284 for (let c of argv.clients) {
285 console.log('######################################################################');
286 console.log(`Starting test with ${c} clients and ${argv.iterations} iterations`);
287 console.log(`Sleeping for ${argv.delay} seconds...`);
288 await sleep(argv.delay);
289 const result = await singleTest(c, argv.iterations);
290 console.log(`${c} clients, ${argv.iterations} iterations, ${result.success.mean * 100}% success`);
291 console.log(`homepage: ${result.timeHomepage.mean} +/- ${result.timeHomepage.stddev} s`);
292 console.log(`questions: ${result.timeQuestions.mean} +/- ${result.timeQuestions.stddev} s`);
293 console.log(`question: ${result.timeQuestion.mean} +/- ${result.timeQuestion.stddev} s`);
294 console.log(`submit: ${result.timeSubmit.mean} +/- ${result.timeSubmit.stddev} s`);
295 console.log(`total: ${result.timeTotal.mean} +/- ${result.timeTotal.stddev} s`);
296 result.clients = c;
297 result.iterations = argv.iterations;
298 results.push(result);
299 }
300 console.log('######################################################################');
301 console.log('clients,iterations,success fraction,homepage mean,homepage stddev,questions mean,questions stddev,question mean,question stddev,submit mean,submit stddev,total mean,total stddev,throughput');
302 for (let result of results) {
303 console.log(`${result.clients},${result.iterations},${result.success.mean},${result.timeHomepage.mean},${result.timeHomepage.stddev},${result.timeQuestions.mean},${result.timeQuestions.stddev},${result.timeQuestion.mean},${result.timeQuestion.stddev},${result.timeSubmit.mean},${result.timeSubmit.stddev},${result.timeTotal.mean},${result.timeTotal.stddev},${result.clients * result.success.mean / result.timeTotal.mean}`);
304 }
305 } catch (e) {
306 console.log('Error', e);
307 }
308}
309
310main();

Callers 1

load-test.jsFile · 0.70

Calls 2

sleepFunction · 0.85
singleTestFunction · 0.85

Tested by

no test coverage detected