はじめに
Karateを使ってAPIの自動テストを実装していると、パラメータ化して実行時に切り替えてテストしたい場合があるかと思います
今回はそのパラメータを実行オプションで設定する方法を書いていきます
設定ファイルへの定義
以下の2つのファイルにパラメータを設定します
build.gradle
testブロックにて、テスト実行時に渡されるパラメータをシステムプロパティに追加してください
以下はkarate.prm1というシステムプロパティにパラメータを設定するサンプルコードです
build.gradle
test {
...
systemProperty "karate.prm1", System.properties.getProperty("karate.prm1")
...
}
karate-config.js
各テストスクリプト共通で該当のパラメータ値を利用したいので、karate-config.jsでシステムプロパティから取得します
karate.properties[key]を使ってシステムプロパティから値を取得してprm1という変数に設定するサンプルコードです
karate-config.js
function fn() {
...
var config = {
baseUrl: 'https://example.com',
prm1: karate.properties['karate.prm1']
};
...
}
テスト実行
以下はGradleでテスト実行する際の例です
この様にオプションを追加するとkarate-config.jsにてxxxxxxxという値がprm1に設定されてテストランナーが実行されます
./gradlew clean test -Dkarate.prm1=xxxxxxx --tests ApiTestRunner