テストをカスタマイズ
カスタムテスト設定を作成
Webhookを利用したりテストの実行をカスタマイズしたりする場合は、pomを自分で設定できます。
ここではpom.xmlの例を示しますが、設定可能なオプションは以下のとおりです。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.ci.api-tester</groupId>
<artifactId>petstore_api</artifactId>
<version>1.0.0</version>
<build>
<plugins>
<plugin>
<!-- The Talend maven plugin -->
<groupId>org.talend.ci</groupId>
<artifactId>api-tester-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<file>Petstore_API.json</file>
<selectedEnvironment>API Services's context</selectedEnvironment>
<!-- Put your Account ID here. Consult your Account Information in Talend Management Console Subscription page -->
<accountId>${account_id}</accountId>
<instance>us</instance>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<pluginRepositories>
<!-- Put your plugin repository configuration here -->
</pluginRepositories>
</project>
Pom設定
以下の属性をpomに追加して、プラグインの動作を微調整できます。追加方法には次の2つがあります。
- pomの設定タグ(上の例の属性ファイルを参照してください)
- JVM引数でプラグインに渡す
Pomで属性が${attributeName}で定義されている場合は、JVMプラグインを使用してmvnコマンドを実行すると、値を渡すことができます。上記のpomのaccountIdの場合、以下のように渡すことができます。
mvn clean test -Daccount_id=492b2ecd-888d-4087-8ab5-42cab17334ad
Pom属性
次の表に、使用可能なカスタマイズオプションを示します。
名前 | タイプ | 必須 | デフォルト | 説明 |
---|---|---|---|---|
file | ファイル | Yes | デフォルト値なし | Pomの場所からのTalend Cloud API Testerエクスポートファイルを指すファイルパス。 |
selectedEnvironment | 文字列 | なし | デフォルト値なし | 使用する環境の名前(JSONファイルにエクスポートされていることをご確認ください)。 |
account_id | 文字列 | Yes | デフォルト値なし | 有効なアカウントID。 Account IDは、Talend Management Console[Subscription] (サブスクリプション)ページで確認できます。このページにアクセスできない場合は、管理者にお問い合わせください。 |
stopOnFailure | ブール値 | いいえ | false | エラー/障害が発生した場合、ビルドの処理を停止します。 |
httpclientTimeoutInMs | 整数 | いいえ | 60000 | HTTPタイムアウトまでの時間(ミリ秒)。 |
variables | プロパティ | なし | デフォルト値なし | カスタム変数。 |
xhrEmulation | ブール値 | いいえ | true | accept-*など、ブラウザーにより自動的に追加されるヘッダーを追加してChromeの拡張機能の動作を模倣します。 |
followRedirects | 文字列 | いいえ | なし | MavenプラグインでブラウザーのChrome拡張設定で使用可能なリダイレクトをフォローするかどうかを示します。使用可能な値はNONEまたはALLです。 |
beforeTest | URL | なし | デフォルト値なし | テストを開始する前に通知を送信するURL。 |
afterTest | URL | なし | デフォルト値なし | テストの完了後に通知を送信するURL。 |
begin | URL | なし | デフォルト値なし | 最初のテストが実行される前に通知を送信するURL。 |
end | URL | なし | デフォルト値なし | 最後のテストが実行された後に通知を送信するURL。 |
useMavenProxies | ブール値 | いいえ | false | ~/.M2/settings.xmlで設定されたプロキシを、テストのHTTPコールに使用するかどうかを示します。 |
以下は完全な設定例です:
<configuration>
<file>/path/to/json/configuration/file.json</file>
<selectedEnvironment>QA</selectedEnvironment>
<accountId>${account_id}</accountId>
<stopOnFailure>true</stopOnFailure>
<httpclientTimeoutInMs>30000</httpclientTimeoutInMs>
<xhrEmulation>false</xhrEmulation>
<followRedirects>ALL</followRedirects>
<beforeTest>https://my-ci-api.com/api1/notifications</beforeTest>
<afterTest>https://my-ci-api.com/api1/notifications</afterTest>
</configuration>
環境変数の上書き
環境変数を上書きするには、プラグインの設定でvariablesタグを追加します。
特定のマシン上の別のポートでAPIを実行する必要がある場合は、環境変数host経由で443に設定されていても、1337のポートで実行する必要があります。これは、次に示すように環境変数portを上書きすることで簡単に行うことができます。
<configuration>
<file>test.json</file>
<selectedEnvironment>localhost</selectedEnvironment>
<variables>
<!-- The variable port's value will be overwritten to 1337 -->
<property>
<name>port</name>
<value>1337</value>
</property>
<!-- The variable apiEndpoint's value can be set when invoking Maven -->
<property>
<name>apiEndpoint</name>
<value>${api.endpoint}</value>
</property>
</variables>
</configuration>
mvn test -Dapi.endpoint=https://httpbin.org
プロキシを使用
APIはプロキシ経由のアクセスに限られる可能性があります。この場合、Talendではmavenプラグインによって行われたすべてのHTTPコールに対してプロキシを設定する簡単な方法が用意されています。
システムプロキシ設定
テストコンピューターのシステム全体でプロキシが設定されている場合は、単純なプラグインを使用してプラグインを起動できます。
mvn test -Djava.net.useSystemProxies=true
この引数は、最近のWindowsシステムとGnome 2.xシステムで利用可能です。詳細は、[Networking Properties] (ネットワークプロパティ)を参照してください。
Mavenプロキシ設定
Mavenプラグインでは、以下の設定を使用するだけで、settings.xmlで定義されたMavenのインストールプロキシ設定を再利用できます。
<configuration>
<file>/test.json</file>
<useMavenProxies>true</useMavenProxies>
</configuration>
Mavenプロキシ設定の詳細は、[Configuring a proxy] (プロキシの設定)を参照してください。
JVMプロキシ設定
プロキシ設定は、標準のJVM引数を使用して実行時に設定することもできます。
JVMネットワークの引数の詳細は、[Oracle Networking Properties] (Oracleネットワーキングプロパティ)を参照してください。
JVMプロキシ設定はすべてのJVMに適用され、他のMavenプラグインやターゲットでも実行されるすべてのリクエストに影響します。
HTTPプロキシ設定
プロキシがhttpプロトコルを使用している場合は、次の引数を使用できます。
名前 | デフォルト | 説明 |
---|---|---|
http.proxyHost | "" | プロキシサーバーのホスト名またはアドレス |
http.proxyPort | 80 | プロキシサーバーのポート番号 |
http.proxyUser | "" | プロキシで基本認証が使用された場合の認証のユーザー名 |
http.proxyPassword | "" | プロキシで基本認証が使用された場合の認証のパスワード |
http.nonProxyHosts | localhost|127.*|[::1] | サポートされていません。プロキシを経由せずにアクセスする必要があるホストを示します |
以前の引数を指定すると、Mavenプラグインを使用できます。
mvn test -Dhttp.proxyHost=192.168.1.127
HTTPSプロキシ設定
プロキシでhttpsプロトコルが使用されている場合は、次の引数を使用できます。
名前 | デフォルト | 説明 |
---|---|---|
https.proxyHost | "" | プロキシサーバーのホスト名またはアドレス |
https.proxyPort | 443 | プロキシサーバーのポート番号 |
http.proxyUser | "" | プロキシで基本認証が使用された場合は認証のユーザー名 |
http.proxyPassword | "" | プロキシで基本認証が使用された場合は認証のパスワード |
http.nonProxyHosts | localhost|127.*|[::1] | サポートされていません。プロキシを経由せずにアクセスする必要があるホストを示します |
以前の引数を指定すると、Mavenプラグインを使用できます。
mvn test -Dhttps.proxyHost=192.168.1.127
通知形式
テスト通知の前後
Mavenプラグインでは、各テストの前後に、選択したURLに通知を送信できます。PomでbeforeTestパラメーターとafterTestパラメーターを設定すると、各テストの開始時と終了時に設定で指定したURLにPOSTリクエストが送信されます。
リクエストボディは次のようになります。
{
"name":[test name],
"event":[BeforeTest|AfterTest],
"result":[Ok|Failure|Error] <- present only if event=afterTest
}
通知の開始/終了
Mavenプラグインが開始時と終了時に選択したURLに通知を送信するように設定できます。Pomでbeginパラメーターとendパラメーターを設定すると、プラグインの実行開始時および終了時に、設定で指定したURLにPOSTリクエストが送信されます。
リクエストボディは次のようになります。
{
"event":[Begin|End]
}