INNER CODE UNIT · TypeScript
_runK6
hasura/graphql-bench · app/queries/src/executors/k6/index.ts:177
private async _runK6(metadata: RunK6Metadata, config: K6Options) {
const { queryName, outputFile } = metadata
// If "debug" true, log all HTTP responses
if (this.config.debug) config.httpDebug = 'full'
// Write the K6 configuration JSON to a temp file, to pass as CLI flag
const tmpDir = path.join(__dirname, 'tmp')
const tmpConfig = path.join(tmpDir, `${queryName}_config.json`)
await fs.outputJSON(tmpConfig, config)
// outPath is where the JSON report stats will go, scriptFile points K6 to the JS script for the load test
const outPath = path.join(this.reportPath, outputFile)
const scriptFile = path.join(this.localBinaryFolder, 'k6/loadScript.js')
const rawStatsFilePath = path.join(tmpDir, 'k6_raw_stats.json')
// Make sure the directory exists, or K6 will fail when writing
await fs.ensureFile(outPath)