@nestia/e2e 0.5.0-dev.20240617-5 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -168,8 +168,8 @@ export declare namespace DynamicBenchmarker {
|
|
|
168
168
|
/**
|
|
169
169
|
* Convert the benchmark report to markdown content.
|
|
170
170
|
*
|
|
171
|
-
* @param
|
|
171
|
+
* @param report Benchmark report
|
|
172
172
|
* @returns Markdown content
|
|
173
173
|
*/
|
|
174
|
-
const
|
|
174
|
+
const markdown: (report: DynamicBenchmarker.IReport) => string;
|
|
175
175
|
}
|
|
@@ -263,10 +263,10 @@ var DynamicBenchmarker;
|
|
|
263
263
|
/**
|
|
264
264
|
* Convert the benchmark report to markdown content.
|
|
265
265
|
*
|
|
266
|
-
* @param
|
|
266
|
+
* @param report Benchmark report
|
|
267
267
|
* @returns Markdown content
|
|
268
268
|
*/
|
|
269
|
-
DynamicBenchmarker.
|
|
269
|
+
DynamicBenchmarker.markdown = function (report) {
|
|
270
270
|
var format = function (value) {
|
|
271
271
|
return value === null ? "N/A" : (Math.floor(value * 100) / 100).toLocaleString();
|
|
272
272
|
};
|
|
@@ -301,18 +301,18 @@ var DynamicBenchmarker;
|
|
|
301
301
|
"> - NodeJS Version: ".concat(process.version),
|
|
302
302
|
"> - Backend Server: 1 core / 1 thread",
|
|
303
303
|
"> - Arguments: ",
|
|
304
|
-
"> - Count: ".concat(
|
|
305
|
-
"> - Threads: ".concat(
|
|
306
|
-
"> - Simultaneous: ".concat(
|
|
307
|
-
"> - Total Elapsed Time: ".concat(
|
|
304
|
+
"> - Count: ".concat(report.count.toLocaleString()),
|
|
305
|
+
"> - Threads: ".concat(report.threads.toLocaleString()),
|
|
306
|
+
"> - Simultaneous: ".concat(report.simultaneous.toLocaleString()),
|
|
307
|
+
"> - Total Elapsed Time: ".concat(report.time.toLocaleString(), " ms"),
|
|
308
308
|
"",
|
|
309
309
|
"### Total",
|
|
310
310
|
writeHead(),
|
|
311
|
-
writeRow("Total",
|
|
311
|
+
writeRow("Total", report.statistics),
|
|
312
312
|
"",
|
|
313
313
|
"### Endpoints",
|
|
314
314
|
writeHead()
|
|
315
|
-
], __read(
|
|
315
|
+
], __read(report.endpoints
|
|
316
316
|
.slice()
|
|
317
317
|
.sort(function (a, b) { var _a, _b; return ((_a = b.mean) !== null && _a !== void 0 ? _a : 0) - ((_b = a.mean) !== null && _b !== void 0 ? _b : 0); })
|
|
318
318
|
.map(function (endpoint) {
|
|
@@ -322,7 +322,7 @@ var DynamicBenchmarker;
|
|
|
322
322
|
"### Failures",
|
|
323
323
|
"Method | Path | Count | Success",
|
|
324
324
|
"-------|------|-------|--------"
|
|
325
|
-
], false), __read(
|
|
325
|
+
], false), __read(report.endpoints
|
|
326
326
|
.filter(function (e) { return e.success !== e.count; })
|
|
327
327
|
.slice()
|
|
328
328
|
.sort(function (a, b) { return b.count - a.count; })
|
|
@@ -400,50 +400,11 @@ var DynamicBenchmarker;
|
|
|
400
400
|
});
|
|
401
401
|
}); };
|
|
402
402
|
};
|
|
403
|
-
var statistics = function (events) {
|
|
404
|
-
var successes = events.filter(function (event) { return event.status === 200 || event.status === 201; });
|
|
405
|
-
return __assign({ count: events.length, success: successes.length }, average(events));
|
|
406
|
-
};
|
|
407
|
-
var average = function (events) {
|
|
408
|
-
var e_2, _a;
|
|
409
|
-
if (events.length === 0)
|
|
410
|
-
return {
|
|
411
|
-
mean: null,
|
|
412
|
-
stdev: null,
|
|
413
|
-
minimum: null,
|
|
414
|
-
maximum: null,
|
|
415
|
-
};
|
|
416
|
-
var mean = 0;
|
|
417
|
-
var stdev = 0;
|
|
418
|
-
var minimum = Number.MAX_SAFE_INTEGER;
|
|
419
|
-
var maximum = Number.MIN_SAFE_INTEGER;
|
|
420
|
-
try {
|
|
421
|
-
for (var events_2 = __values(events), events_2_1 = events_2.next(); !events_2_1.done; events_2_1 = events_2.next()) {
|
|
422
|
-
var event_1 = events_2_1.value;
|
|
423
|
-
var elapsed = new Date(event_1.completed_at).getTime() -
|
|
424
|
-
new Date(event_1.started_at).getTime();
|
|
425
|
-
mean += elapsed;
|
|
426
|
-
stdev += elapsed * elapsed;
|
|
427
|
-
minimum = Math.min(minimum, elapsed);
|
|
428
|
-
maximum = Math.max(maximum, elapsed);
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
432
|
-
finally {
|
|
433
|
-
try {
|
|
434
|
-
if (events_2_1 && !events_2_1.done && (_a = events_2.return)) _a.call(events_2);
|
|
435
|
-
}
|
|
436
|
-
finally { if (e_2) throw e_2.error; }
|
|
437
|
-
}
|
|
438
|
-
mean /= events.length;
|
|
439
|
-
stdev = Math.sqrt(stdev / events.length - mean * mean);
|
|
440
|
-
return { mean: mean, stdev: stdev, minimum: minimum, maximum: maximum };
|
|
441
|
-
};
|
|
442
403
|
})(DynamicBenchmarker || (exports.DynamicBenchmarker = DynamicBenchmarker = {}));
|
|
443
404
|
var iterate = function (ctx) {
|
|
444
405
|
return function (path) { return __awaiter(void 0, void 0, void 0, function () {
|
|
445
|
-
var directory, directory_1, directory_1_1, file, location_1, stat, modulo, _a, _b, _c, key, value,
|
|
446
|
-
var
|
|
406
|
+
var directory, directory_1, directory_1_1, file, location_1, stat, modulo, _a, _b, _c, key, value, e_2_1, e_3_1;
|
|
407
|
+
var e_3, _d, e_2, _e;
|
|
447
408
|
return __generator(this, function (_f) {
|
|
448
409
|
switch (_f.label) {
|
|
449
410
|
case 0: return [4 /*yield*/, fs_1.default.promises.readdir(path)];
|
|
@@ -474,7 +435,7 @@ var iterate = function (ctx) {
|
|
|
474
435
|
_f.label = 8;
|
|
475
436
|
case 8:
|
|
476
437
|
_f.trys.push([8, 16, 17, 18]);
|
|
477
|
-
_a = (
|
|
438
|
+
_a = (e_2 = void 0, __values(Object.entries(modulo))), _b = _a.next();
|
|
478
439
|
_f.label = 9;
|
|
479
440
|
case 9:
|
|
480
441
|
if (!!_b.done) return [3 /*break*/, 15];
|
|
@@ -500,32 +461,71 @@ var iterate = function (ctx) {
|
|
|
500
461
|
return [3 /*break*/, 9];
|
|
501
462
|
case 15: return [3 /*break*/, 18];
|
|
502
463
|
case 16:
|
|
503
|
-
|
|
504
|
-
|
|
464
|
+
e_2_1 = _f.sent();
|
|
465
|
+
e_2 = { error: e_2_1 };
|
|
505
466
|
return [3 /*break*/, 18];
|
|
506
467
|
case 17:
|
|
507
468
|
try {
|
|
508
469
|
if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
|
|
509
470
|
}
|
|
510
|
-
finally { if (
|
|
471
|
+
finally { if (e_2) throw e_2.error; }
|
|
511
472
|
return [7 /*endfinally*/];
|
|
512
473
|
case 18:
|
|
513
474
|
directory_1_1 = directory_1.next();
|
|
514
475
|
return [3 /*break*/, 3];
|
|
515
476
|
case 19: return [3 /*break*/, 22];
|
|
516
477
|
case 20:
|
|
517
|
-
|
|
518
|
-
|
|
478
|
+
e_3_1 = _f.sent();
|
|
479
|
+
e_3 = { error: e_3_1 };
|
|
519
480
|
return [3 /*break*/, 22];
|
|
520
481
|
case 21:
|
|
521
482
|
try {
|
|
522
483
|
if (directory_1_1 && !directory_1_1.done && (_d = directory_1.return)) _d.call(directory_1);
|
|
523
484
|
}
|
|
524
|
-
finally { if (
|
|
485
|
+
finally { if (e_3) throw e_3.error; }
|
|
525
486
|
return [7 /*endfinally*/];
|
|
526
487
|
case 22: return [2 /*return*/];
|
|
527
488
|
}
|
|
528
489
|
});
|
|
529
490
|
}); };
|
|
530
491
|
};
|
|
492
|
+
var statistics = function (events) {
|
|
493
|
+
var successes = events.filter(function (event) { return event.status === 200 || event.status === 201; });
|
|
494
|
+
return __assign({ count: events.length, success: successes.length }, average(events));
|
|
495
|
+
};
|
|
496
|
+
var average = function (events) {
|
|
497
|
+
var e_4, _a;
|
|
498
|
+
if (events.length === 0)
|
|
499
|
+
return {
|
|
500
|
+
mean: null,
|
|
501
|
+
stdev: null,
|
|
502
|
+
minimum: null,
|
|
503
|
+
maximum: null,
|
|
504
|
+
};
|
|
505
|
+
var mean = 0;
|
|
506
|
+
var stdev = 0;
|
|
507
|
+
var minimum = Number.MAX_SAFE_INTEGER;
|
|
508
|
+
var maximum = Number.MIN_SAFE_INTEGER;
|
|
509
|
+
try {
|
|
510
|
+
for (var events_2 = __values(events), events_2_1 = events_2.next(); !events_2_1.done; events_2_1 = events_2.next()) {
|
|
511
|
+
var event_1 = events_2_1.value;
|
|
512
|
+
var elapsed = new Date(event_1.completed_at).getTime() -
|
|
513
|
+
new Date(event_1.started_at).getTime();
|
|
514
|
+
mean += elapsed;
|
|
515
|
+
stdev += elapsed * elapsed;
|
|
516
|
+
minimum = Math.min(minimum, elapsed);
|
|
517
|
+
maximum = Math.max(maximum, elapsed);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
521
|
+
finally {
|
|
522
|
+
try {
|
|
523
|
+
if (events_2_1 && !events_2_1.done && (_a = events_2.return)) _a.call(events_2);
|
|
524
|
+
}
|
|
525
|
+
finally { if (e_4) throw e_4.error; }
|
|
526
|
+
}
|
|
527
|
+
mean /= events.length;
|
|
528
|
+
stdev = Math.sqrt(stdev / events.length - mean * mean);
|
|
529
|
+
return { mean: mean, stdev: stdev, minimum: minimum, maximum: maximum };
|
|
530
|
+
};
|
|
531
531
|
//# sourceMappingURL=DynamicBenchmarker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicBenchmarker.js","sourceRoot":"","sources":["../src/DynamicBenchmarker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0CAAoB;AACpB,0CAAoB;AACpB,+BAA8D;AAC9D,6BAAqC;AAMrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,IAAiB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"DynamicBenchmarker.js","sourceRoot":"","sources":["../src/DynamicBenchmarker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -269,10 +269,10 @@ export namespace DynamicBenchmarker {
|
|
|
269
269
|
/**
|
|
270
270
|
* Convert the benchmark report to markdown content.
|
|
271
271
|
*
|
|
272
|
-
* @param
|
|
272
|
+
* @param report Benchmark report
|
|
273
273
|
* @returns Markdown content
|
|
274
274
|
*/
|
|
275
|
-
export const
|
|
275
|
+
export const markdown = (report: DynamicBenchmarker.IReport): string => {
|
|
276
276
|
const format = (value: number | null) =>
|
|
277
277
|
value === null ? "N/A" : (Math.floor(value * 100) / 100).toLocaleString();
|
|
278
278
|
const writeHead = () =>
|
|
@@ -307,18 +307,18 @@ export namespace DynamicBenchmarker {
|
|
|
307
307
|
`> - NodeJS Version: ${process.version}`,
|
|
308
308
|
`> - Backend Server: 1 core / 1 thread`,
|
|
309
309
|
`> - Arguments: `,
|
|
310
|
-
`> - Count: ${
|
|
311
|
-
`> - Threads: ${
|
|
312
|
-
`> - Simultaneous: ${
|
|
313
|
-
`> - Total Elapsed Time: ${
|
|
310
|
+
`> - Count: ${report.count.toLocaleString()}`,
|
|
311
|
+
`> - Threads: ${report.threads.toLocaleString()}`,
|
|
312
|
+
`> - Simultaneous: ${report.simultaneous.toLocaleString()}`,
|
|
313
|
+
`> - Total Elapsed Time: ${report.time.toLocaleString()} ms`,
|
|
314
314
|
"",
|
|
315
315
|
"### Total",
|
|
316
316
|
writeHead(),
|
|
317
|
-
writeRow("Total",
|
|
317
|
+
writeRow("Total", report.statistics),
|
|
318
318
|
"",
|
|
319
319
|
"### Endpoints",
|
|
320
320
|
writeHead(),
|
|
321
|
-
...
|
|
321
|
+
...report.endpoints
|
|
322
322
|
.slice()
|
|
323
323
|
.sort((a, b) => (b.mean ?? 0) - (a.mean ?? 0))
|
|
324
324
|
.map((endpoint) =>
|
|
@@ -328,7 +328,7 @@ export namespace DynamicBenchmarker {
|
|
|
328
328
|
"### Failures",
|
|
329
329
|
"Method | Path | Count | Success",
|
|
330
330
|
"-------|------|-------|--------",
|
|
331
|
-
...
|
|
331
|
+
...report.endpoints
|
|
332
332
|
.filter((e) => e.success !== e.count)
|
|
333
333
|
.slice()
|
|
334
334
|
.sort((a, b) => b.count - a.count)
|
|
@@ -390,45 +390,6 @@ export namespace DynamicBenchmarker {
|
|
|
390
390
|
await ctx.driver.progress(events.length);
|
|
391
391
|
return events;
|
|
392
392
|
};
|
|
393
|
-
|
|
394
|
-
const statistics = (events: IBenchmarkEvent[]): IReport.IStatistics => {
|
|
395
|
-
const successes: IBenchmarkEvent[] = events.filter(
|
|
396
|
-
(event) => event.status === 200 || event.status === 201,
|
|
397
|
-
);
|
|
398
|
-
return {
|
|
399
|
-
count: events.length,
|
|
400
|
-
success: successes.length,
|
|
401
|
-
...average(events),
|
|
402
|
-
};
|
|
403
|
-
};
|
|
404
|
-
|
|
405
|
-
const average = (
|
|
406
|
-
events: IBenchmarkEvent[],
|
|
407
|
-
): Pick<IReport.IStatistics, "mean" | "stdev" | "minimum" | "maximum"> => {
|
|
408
|
-
if (events.length === 0)
|
|
409
|
-
return {
|
|
410
|
-
mean: null,
|
|
411
|
-
stdev: null,
|
|
412
|
-
minimum: null,
|
|
413
|
-
maximum: null,
|
|
414
|
-
};
|
|
415
|
-
let mean: number = 0;
|
|
416
|
-
let stdev: number = 0;
|
|
417
|
-
let minimum: number = Number.MAX_SAFE_INTEGER;
|
|
418
|
-
let maximum: number = Number.MIN_SAFE_INTEGER;
|
|
419
|
-
for (const event of events) {
|
|
420
|
-
const elapsed: number =
|
|
421
|
-
new Date(event.completed_at).getTime() -
|
|
422
|
-
new Date(event.started_at).getTime();
|
|
423
|
-
mean += elapsed;
|
|
424
|
-
stdev += elapsed * elapsed;
|
|
425
|
-
minimum = Math.min(minimum, elapsed);
|
|
426
|
-
maximum = Math.max(maximum, elapsed);
|
|
427
|
-
}
|
|
428
|
-
mean /= events.length;
|
|
429
|
-
stdev = Math.sqrt(stdev / events.length - mean * mean);
|
|
430
|
-
return { mean, stdev, minimum, maximum };
|
|
431
|
-
};
|
|
432
393
|
}
|
|
433
394
|
|
|
434
395
|
interface IFunction<Parameters extends any[]> {
|
|
@@ -462,3 +423,47 @@ const iterate =
|
|
|
462
423
|
}
|
|
463
424
|
}
|
|
464
425
|
};
|
|
426
|
+
|
|
427
|
+
const statistics = (
|
|
428
|
+
events: IBenchmarkEvent[],
|
|
429
|
+
): DynamicBenchmarker.IReport.IStatistics => {
|
|
430
|
+
const successes: IBenchmarkEvent[] = events.filter(
|
|
431
|
+
(event) => event.status === 200 || event.status === 201,
|
|
432
|
+
);
|
|
433
|
+
return {
|
|
434
|
+
count: events.length,
|
|
435
|
+
success: successes.length,
|
|
436
|
+
...average(events),
|
|
437
|
+
};
|
|
438
|
+
};
|
|
439
|
+
|
|
440
|
+
const average = (
|
|
441
|
+
events: IBenchmarkEvent[],
|
|
442
|
+
): Pick<
|
|
443
|
+
DynamicBenchmarker.IReport.IStatistics,
|
|
444
|
+
"mean" | "stdev" | "minimum" | "maximum"
|
|
445
|
+
> => {
|
|
446
|
+
if (events.length === 0)
|
|
447
|
+
return {
|
|
448
|
+
mean: null,
|
|
449
|
+
stdev: null,
|
|
450
|
+
minimum: null,
|
|
451
|
+
maximum: null,
|
|
452
|
+
};
|
|
453
|
+
let mean: number = 0;
|
|
454
|
+
let stdev: number = 0;
|
|
455
|
+
let minimum: number = Number.MAX_SAFE_INTEGER;
|
|
456
|
+
let maximum: number = Number.MIN_SAFE_INTEGER;
|
|
457
|
+
for (const event of events) {
|
|
458
|
+
const elapsed: number =
|
|
459
|
+
new Date(event.completed_at).getTime() -
|
|
460
|
+
new Date(event.started_at).getTime();
|
|
461
|
+
mean += elapsed;
|
|
462
|
+
stdev += elapsed * elapsed;
|
|
463
|
+
minimum = Math.min(minimum, elapsed);
|
|
464
|
+
maximum = Math.max(maximum, elapsed);
|
|
465
|
+
}
|
|
466
|
+
mean /= events.length;
|
|
467
|
+
stdev = Math.sqrt(stdev / events.length - mean * mean);
|
|
468
|
+
return { mean, stdev, minimum, maximum };
|
|
469
|
+
};
|