テストのカスタマイズ - Cloud

Talend Cloud API Testerユーザーガイド

Version
Cloud
Language
日本語 (日本)
Product
Talend Cloud
Module
Talend API Tester
Content
ジョブデザインと開発 > Testing APIs
pom.xmlを編集して、APIテストの設定をカスタマイズします。

カスタムテスト設定を作成

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
注: 2番目のオプションはAccount IDなどの機密情報に対して推奨されており、pomと一緒に誤ってパブリックな場所にコミットされることがないようにします。

Pom属性

次の表に、使用可能なカスタマイズオプションを示します。

名前 タイプ 必須 デフォルト 説明
file ファイル はい X Pomの場所からのTalend Cloud API Testerエクスポートファイルを指すファイルパス。
selectedEnvironment 文字列 いいえ X 使用する環境の名前(JSONファイルにエクスポートされていることをご確認ください)。
account_id 文字列 はい X

有効なアカウントID。

Account IDは、Talend Cloud Management Console[Subscription] (サブスクリプション)ページで確認できます。

stopOnFailure ブール値 いいえ false エラー/障害が発生した場合、ビルドの処理を停止します。
httpclientTimeoutInMs 整数 いいえ 60000 HTTPタイムアウトまでの時間(ミリ秒)。
variables プロパティ いいえ X カスタム変数。
xhrEmulation ブール値 いいえ true accept-*など、ブラウザーにより自動的に追加されるヘッダーを追加してChromeの拡張機能の動作を模倣します。
followRedirects 文字列 いいえ なし MavenプラグインでブラウザーのChrome拡張設定で使用可能なリダイレクトをフォローするかどうかを示します。使用可能な値はNONEまたはALLです。
beforeTest URL いいえ X テストを開始する前に通知を送信するURL。
afterTest URL いいえ X テストの完了後に通知を送信するURL。
begin URL いいえ X 最初のテストが実行される前に通知を送信するURL。
end URL いいえ X 最後のテストが実行された後に通知を送信する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>
Mavenのプロパティは、プラグインの起動時に環境変数として設定して定義できます。たとえばapiEndpoint値を${api.endpoint}に設定し、次のコマンドで定義します。
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>
注: 現時点では、nonProxyHosts属性はサポートされていません。

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] &Tab;<- present only if event=afterTest
}

通知の開始/終了

Mavenプラグインが開始時と終了時に選択したURLに通知を送信するように設定できます。Pomでbeginパラメーターとendパラメーターを設定すると、プラグインの実行開始時および終了時に、設定で指定したURLにPOSTリクエストが送信されます。

リクエストボディは次のようになります。

{
  "event":[Begin|End]
}