値のパラメーター化

このトピックでは、DevWebスクリプトをパラメーター化して拡張する方法について説明します。

このトピックの内容:

パラメーター化の概要

DevWebスクリプトを作成してビジネスプロセスをエミュレートするときは、特定の値を含むスクリプトを作成します。スクリプトのアクション (querysubmitなど) を、記録されたものとは異なる値を使用して実行したいとします。異なる値を使用するためには、値をパラメーターで置き換えます。これを、スクリプトの「パラメーター化」と呼びます。

テストの実行中に、DevWebは、パラメーターリソースファイル (parameters.yml) で指定したメソッドで、指定したデータファイルの値でパラメーターを置き換えます。

ヒント: 次のビデオを確認します: チュートリアル#6: パラメーターの使用

先頭に戻る

パラメーターデータファイル

パラメーターデータファイルは、仮想ユーザーがスクリプトの実行中にアクセスできる値を保持します。

パラメーターデータファイルは、CSV (カンマ区切り値) ファイルです。1つのファイルに多数のパラメーターに対する値を格納できます。1つのカラムに1つのパラメーターに対する値が保存されます。列の最初の行はパラメーター名を表し、後続の各行は追加の値を表します。

次の例では、データファイルに「id」パラメーターと「first_name」パラメーターが含まれています。

id,first_name

120,John

121,Bill

122,Tom

先頭に戻る

パラメーターリソースファイル (parameters.yml)

parameters.ymlファイルには、スクリプトでパラメーターを使用する方法が記述されています。このファイルはscriptフォルダーに保存されます。

以下のサンプルに示すように、各パラメーターには独自のプロパティが必要です。

parameter.yml引数

次の表で、parameters.ymlプロパティについて説明します。

プロパティ 説明
name

後でコードで使用できるパラメーターの名前。

type

パラメーターのデータソースのタイプ。

サポートされているタイプ: CSV、各列が1つのパラメーターを表すコンマ区切りの値のテーブル。CSVには、列の名前を定義するヘッダー行が含まれている必要があります。

fileName

パラメーターデータを含むスクリプトフォルダー内のCSVファイルの名前。

columnName 列が表すパラメーターの値を取得する (CSVファイル内の) 列の名前。これは、CSVファイルの最初の行で定義されます。
nextValue

次の値をいつ収集するかを知るために使用されるロジック。次のように決定されます。

  •  once: 値は、テスト実行全体で1回だけ取得され、実行中は同じ値のままです。

  • iteration: 新しい値は反復ごとに取得され、反復全体を通じて同じ値のままです。
  • always: 値は、パラメーターが使用されるたびに取得されます。

: nextRowsame as <parameter name>に設定されている場合、nextValueは無視されます。

nextRow

次の値を選択する方法を知るために使用されるロジック。次のように決定されます。

  • sequential: 次の値は、同じ列の現在の値の直後の値です。

  • random: 次の値は、同じ列のランダムな値です。
  • same as <parameter name>: 次の値は、<パラメーター名>の現在の値と同じ行から取得されます。これは、たとえば、パスワードとユーザー名を照合する場合に役立ちます。

    same as <parameter name>と同じ場合、nextValueonEndは無視されます。

  • unique: 次の値は、現在の仮想ユーザーに固有のパラメーターファイル内の固有のブロックから選択されます。ブロックのサイズを制御するには、blockSizeパラメーターを設定します。

blockSize

nextRowuniqueに設定されている場合にのみ使用されます。

  •  auto: ブロックサイズは、実行がスケジュールされている仮想ユーザーの総数に基づいて、エンジンによって自動的に計算されます。

  •  <number>: ブロックのサイズ。
onEnd

すべての値が使用されたが、スクリプトがさらに値を必要とする場合に何が起こるかを決定します。サポートされているオプションはloopです。これは、

最初の値が次の値として使用されることを意味します。

このプロパティを未定義のままにすると、すべての値が使用されたときにエラーが報告されます。

: nextRowsame as <parameter name>に設定されている場合、onEndは無視されます。

firstDataRow

カラムから値を選択するための開始行を定義します。

選択がループまたはランダムであっても、開始行の前の行の値がパラメーターに使用されることはありません。たとえば、firstDataRow: 4の場合、1行目から3行目までの値は決して使用されません。

注: firstDataRow番号は、実際のデータの最初の行を参照します。列名を含む行は無視されます。

実行環境設定からのユーザー引数

parameters.ymlファイルは、%%で囲まれたユーザー引数キーを指定することにより、実行環境設定 (rts.yml) で定義された引数を使用できます。

parameters.yml内:

parameters:                    
  - name: myParam4
    type: csv
    fileName: "%%myfile%%"
    …

参照された引数がrts.ymlに追加されました:

userArguments: 
  myfile: "./data.csv"

rts.ymlファイルへのユーザー引数の追加の詳細については、属性の追加を参照してください。

先頭に戻る

スクリプトでパラメーターを使用する

テスト実行中にパラメーター値を使用するには、定数値をパラメーターに置き換えます。

パラメーターは、load.params変数を介してスクリプトに公開されます。データファイルの場所など、パラメーターに必要なすべての情報は、上記のparameters.ymlファイルに示されています。

標準のJavaScript構文を使用して、パラメーターを文字列に追加できます。例:

var paramValue = load.params.myParam; 
var nextParamValue = load.params.myParam; //if nextValue is "always" this will be a new value
var someString = `The value of myParam is ${load.params.myParam}`;

詳細については、JavaScript SDKドキュメントのパラメーターを参照してください。

先頭に戻る

関連項目: