Created
February 10, 2022 18:49
-
-
Save calexandrepcjr/32df6570dd7761154021dde6a5dbb056 to your computer and use it in GitHub Desktop.
Perf calculation between two environments (beta/stable) using Postman exported data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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