技術(tech)

k6スクリプト内でシナリオ名やVU数等のオプション設定値を取得する

 

k6でoptionsに渡した値を、k6スクリプト内から参照する方法を紹介します。

シナリオ実行前に、シナリオ名毎に異なるsetupを行いたい場合に利用できます。

結論

k6/executionを利用しましょう。

https://k6.io/docs/javascript-api/k6-execution/#test

optionsに渡したmetadataを取得出来ます。

例えば、以下のようなoptionsを実行時のオプションとして渡していた場合。

https://github.com/gonkunkun/k6-template/blob/main/src/sample-product/configs/smoke.json

以下のようにして、k6スクリプト内でオプション設定値を取得出来ます。

import exec from 'k6/execution'

const scenarios = exec.test.options.scenarios
console.log(scenarios)

 

出力のイメージとしては以下の通り。

{
  "sampleScenario1": {
    "executor": "per-vu-iterations",
    "startTime": "0s",
    "gracefulStop": null,
    "env": null,
    "exec": "sampleScenario1",
    "tags": null,
    "vus": 1,
    "iterations": 1,
    "maxDuration": "1m0s"
  },
  "sampleScenario2": {
    "executor": "per-vu-iterations",
    "startTime": "0s",
    "gracefulStop": null,
    "env": null,
    "exec": "sampleScenario2",
    "tags": null,
    "vus": 1,
    "iterations": 1,
    "maxDuration": "1m0s"
  }
}

 

setup()関数の中でシナリオ毎に初期設定を行う場合には便利です。