test-results

このトピックでは、test-resultsリソースがテスト結果をALM Octaneサーバーに送信する方法について説明します。 

ヒント: 1秒あたり最大20件のリクエストを送信することをお勧めします。

概要

test-resultsリソースは、テスト結果をALM Octaneサーバーに送信します。

このリソースを使用すると、次のことができます。

  • ALM Octaneでテストおよびテスト実行エンティティを作成または更新します。

  • テストエンティティをバックログ項目 (エピック、ストーリー、フィーチャー、不具合)、およびアプリケーションモジュールにリンクします。

  • テスト実行エンティティをリリースおよび環境情報にリンクします (分類法を使用)。

  • テストを定義し、特性を実行します (テストレベル、タイプ、テストツール、およびフレームワークのフィールドを使用)。

注: このリソースを使用する前に、認証APIを使用してサーバーにログインする必要があります。

リソース

テスト結果を送信する

POST .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/test-results

  • Content-Typeヘッダーフィールドはapplication/xmlに設定する必要があります。

  • コンテンツはgzip形式で圧縮できます。この場合、Content-Encodingヘッダーフィールドをapplication/gzipに設定する必要があります。

  • XMLペイロードは、以下で説明するようにXSDスキーマに準拠している必要があります。

応答

これは、ペイロードを処理するためにOctaneにタスクを割り当てる非同期リソースです。

  • ペイロードがXSDスキーマ (以下を参照) に準拠し、タスクが受け入れられた場合、リソースはステータス202 (Accepted)、およびタスクステータスとタスクIDを含むJSONを返します。 {"status":"queued","id":1103}

    JSONの詳細については、以下の「タスクステータスの取得」をご覧ください。

  • それ以外の場合、リソースはステータス400 (Bad Request)で返され、XSDスキーマに準拠していないためペイロードが処理されなかったことを示します。

    注: (同じノードまたは2つの異なるノードのいずれかによって) 複数回送信された同じペイロードの二重処理を回避するために、受信したペイロードはハッシュされ、ハッシュが保存されます。受信したペイロードのハッシュが見つかった場合、ペイロードは処理されず、元のタスクの最新のステータスが返されます。

  • 同じペイロードを複数回注入しようとした場合の応答として、JSONには「fromOlderPush」と「until」の追加フィールドが含まれ、タスクがすでに処理されていることを示します。 {"fromOlderPush":"true","id":1103,"until":"2020-0-28T11:29:51+0000","status":" SUCCESS "}

トップに戻る

クエリパラメーター

test-resultsリソースは、次のパラメーターをサポートします。 

skip-errors ブール値

解析が回復可能なエラーを無視し、データの処理を続行するかどうか。標準設定はfalseです。

  • true: 解析では、存在しないALM Octaneエンティティへの参照やその他の回復可能なエラーは無視されます。すべての有効なデータが処理されます。

  • false: テスト要素内で回復可能なエラーが発生すると、その要素は完全にスキップされ、処理は次の要素から続行されます。

    エラーを無視するときに異なるレベルのデータ間の競合を解決する方法の詳細については、リンクの競合を解決するを参照してください。

トップに戻る

ペイロードの定義

ペイロードは次のことを説明します。

  • 作成または更新するテストおよびテスト実行エンティティ。
  • テストおよびテスト実行にリンクできるOctaneエンティティ。

ルート要素: test_result

最小ペイロードは次のとおりです。

<test_result>

<test_runs>

<test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="testOne" duration="3" status="Passed" started="1430919295889"/>

</test_runs>

</test_result>

test_runs要素

test_runs要素には次のものが含まれます。

  • 自動テスト、ALM Octaneで自動実行に変換されるtest_run

  • Gherkinテストに変換し、Gherkinは、ALM Octaneで実行されるgherkin_test_run

test_run要素

次の表で、test_run要素の属性について説明します。

属性名 必須 ターゲット 説明

module

いいえ

テストと実行のコンポーネントフィールド

テストを含むモジュールまたはコンポーネントの名前。たとえば、Mavenモジュールの名前。

package

いいえ

テストと実行のパッケージフィールド

モジュール内のテストの場所。たとえば、Javaパッケージの名前。

class

いいえ

テストと実行のクラスフィールド

テストを含むファイルの名前。たとえば、Javaの名前。

name

はい

テストと実行の名前フィールド

実行されたテストの名前。たとえば、Javaメソッドの名前。

duration

はい

実行の期間フィールド

テスト実行の期間 (ミリ秒単位)。

status

はい

実行のステータスおよびネイティブステータスフィールド

テスト実行の最終ステータス。可能な値: ‘Passed', 'Failed', 'Skipped'

started

いいえ

開始済み実行フィールド

テスト実行の開始時間。

これは、「エポック」と呼ばれる標準の基準時間からのミリ秒数です。1970年1月1日00:00:00GMT

提供されていない場合、注入時間が使用されます。

external_report_url いいえ 外部レポートURLフィールド この実行を生成した外部システムのレポートへのURL。値はhttp(s)またはtd(s)で始まる必要があります。
external_test_id いいえ テストの外部テストID

テストへの外部参照。

制限事項: インジェクションAPIでは、テストの外部テストIDフィールドは、テストの作成中にのみ更新できます。テストが作成された後、このフィールドは通常のAPIまたはUIを介してのみ更新できます。

external_run_id いいえ

実行の外部実行ID

スイート内の外部テストIDの外部テスト (注入がスイートで行われる場合)

同じテストの実行を区別するために使用されるため、同じテストに属する複数のテスト実行がある場合、一意のexternal_run_idごとに個別の実行が生成されます。

external_run_idがない場合、同じテストを複数回実行すると、ALM Octaneで1回実行されますが、古い実行は実行の前の実行と見なされます。

以下に説明するように、テスト特性 (テストレベル、タイプ、テストツール、フレームワーク) と環境ラベル (DB、OS、ブラウザなど) を使用してテスト実行を区別することもできます。テスト特性または環境ラベルを使用してさまざまな実行を区別する意味がない場合は、external_run_idフィールドを使用します。

注: この属性がテストフレームワークと一緒に使用される場合、スイートの実行がALM Octaneから実行されるときに、このフィールドはCIサーバーに返されます。

注: XML属性の不正な文字: & <

トップに戻る

gherkin_test_run要素

次の表で、gherkin_test_run要素の属性について説明します。

属性名 説明

name

実行されたGherkinテストの名前。たとえば、Javaメソッドの名前。

duration

Gherkinテストの実行時間 (ミリ秒単位)。

status

Gherkinテスト実行の最終ステータス。可能な値: ‘Passed', 'Failed', 'Skipped'

feature

Gherkinテストのフィーチャー。このフィーチャーは次のものに関連付けられています。

  • パス。フィーチャの場所を識別するパス。

  • タグ。GherkinテストがALM Octaneからダウンロードされた場合、そのスクリプトには、次のような形式のテストIDとリビジョンを含むタグがあります。@TID4002REV0.2.0

テストとテスト実行を他のエンティティにリンクする

テストと実行を他のエンティティにリンクできます。リンクは次の場所に表示されます。

  • グローバルコンテキスト (test_runs要素の前)、およびすべてのテスト結果にそのリンクがあります。

  • テスト結果のコンテキスト (test_run要素内)、および特定のテストと実行のみがそのリンクを持ちます。

さまざまなエンティティへのリンクは、エンティティが以下にリストされている順序で表示される必要があります。

すべてのリンクはオプションです。

注: 指定されたリンクはOctaneに存在する必要があります。それ以外の場合はエラーと見なされ (結果をPOSTするときにskip-errorsパラメーターをtrueに設定しない限り)、そのようなリンクを含むtest_runはスキップされます。

トップに戻る

リンクの競合を解決する

これらは、リンク要素がグローバルコンテキストとテスト結果コンテキストの両方で設定されている場合の競合の解決に関するルールです。

  1. 要素がproduct_areas、backlog_items、taxonomy、test_fields (TEST_TYPEのみ) などの複数の値をサポートしている場合、要素はさらに処理するためにマージされます。

  2. 単一のカーディナリティーを持つreleaseやtest_fieldsなど、複数の値をサポートしない要素の場合:

    1. skip-errorsがfalse (標準設定) の場合、そのような競合はエラーと見なされます。競合がグローバルコンテキストにある場合、処理は停止します。単一のテストの場合、そのテストはスキップされます。
    2. skip-errorsがtrueに設定されている場合:

      • 両方のコンテキストで異なるリリースが指定されている場合、この情報は無視されます。テスト実行にリンクされているリリースはありません。

      • 単一の値をサポートするテスト特性 (フィールド) が両方のコンテキストで設定されている場合、テスト結果値のみが使用されます。

トップに戻る

サンプルペイロード

トップに戻る

参照情報: