Skip to content

Instantly share code, notes, and snippets.

@calexandrepcjr
Created February 10, 2022 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save calexandrepcjr/32df6570dd7761154021dde6a5dbb056 to your computer and use it in GitHub Desktop.
Save calexandrepcjr/32df6570dd7761154021dde6a5dbb056 to your computer and use it in GitHub Desktop.
Perf calculation between two environments (beta/stable) using Postman exported data
/**
* Perf calculation between two environments (beta/stable) using Postman exported data
* JSON schema:
* {
* "environmentName": [
* exportedResultObject
* ]
* }
*
* E.g
* {
* "beta": [
* ],
* "stable": [
* ]
* }
*/
const fs = require('fs');
const results = JSON.parse(
fs.readFileSync('./parsed_results.json', 'utf8')
);
const sum = (acc, current) => acc + current;
const median = (values) => {
if (!Array.isArray(values) || values.length === 0) throw new Error("Median method needs to receive a list of numbers");
values.sort((a,b) => a - b);
var half = Math.floor(values.length / 2);
return values.length % 2
? values[half]
: (values[half - 1] + values[half]) / 2.0;
};
const percentageDiff = (aNumber, anotherNumber) => (Math.abs(aNumber - anotherNumber) / ((aNumber + anotherNumber) / 2)) * 100;
const listSuiteResultsFromEnvironment = (environment) => environment.map((suite) => suite.results);
const sumTimeResultsFromSuites = (suites) => suites.map((result) => result.time).reduce(sum, 0);
const timeResultsFromEnvironment = (environment) => listSuiteResultsFromEnvironment(environment).map(sumTimeResultsFromSuites);
const beta = timeResultsFromEnvironment(results.beta);
const stable = timeResultsFromEnvironment(results.stable);
const betaMedian = median(beta);
const stableMedian = median(stable);
console.log({
"rawStatsBetweenEnvironmentsInMs": {
"beta": beta.reduce(sum, 0),
"stable": stable.reduce(sum, 0),
},
"medianBetweenEnvironmentsInMs": {
"beta": betaMedian,
"stable": stableMedian,
},
"percentageDiff": percentageDiff(betaMedian, stableMedian).toFixed(2).toString() + "%",
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment