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 "}
テスト結果を送信してタスクIDを受け取ったら、タスクのステータスを確認できます。
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/test-results/<task_id>
リクエストの応答は、次のフィールドを持つJSONです。
フィールド | 説明 |
---|---|
id |
タスクのID |
Status |
タスクのステータス。可能な値: QUEUED - タスク項目がキューで待機しています。 RUNNING–タスクが実行中です。 SUCCESS–公開操作が正常に終了しました。 WARNING - 公開操作は部分的に成功しました。詳細については、errorDetailsフィールドをご覧ください。 FAILED - 公開操作が成功しませんでした。詳細については、errorDetailsフィールドをご覧ください。 ERROR - システムエラーが発生しました。 |
fromOlderPush | オプションのフィールド。すでに処理されたペイロードを注入しようとした場合にのみ表示されます。 |
until | キャッシュが有効になる期限 (同じペイロードが注入された場合、キャッシュ値が結果を返すために使用されます)。 |
errorDetails |
このフィールドには、セミコロン (;) で区切られた複数のエラーメッセージが含まれる場合があります。 このフィールドには、すべてのテスト結果に関連するグローバルエラー、および特定のテスト結果に関連するエラーが含まれる場合があります。 グローバルエラーの例: 特定のテスト結果、項目0および項目2に関連するエラーの例: |
クエリパラメーター
test-resultsリソースは、次のパラメーターをサポートします。
skip-errors | ブール値 |
解析が回復可能なエラーを無視し、データの処理を続行するかどうか。標準設定は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要素には次のものが含まれます。
-
自動テスト、ALM Octaneで自動実行に変換されるtest_run。
-
Gherkinテストに変換し、Gherkinは、ALM Octaneで実行されるgherkin_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属性の不正な文字: & <
ALM Octaneは、次のフィールドの一意の組み合わせで各テストを識別します: コンポーネント、パッケージ、クラス、名前。
ALM Octaneがテスト実行を受信すると、これらの属性をチェックして、実行を特定のテストに関連付けます。実行に一致する既存のテストがない場合、ALM Octaneは新しい自動テストエンティティを作成します。
各テストには複数のテスト実行を関連付けることができます。各テスト実行は、テスト、リリース、マイルストーン、プログラム、環境で一意に識別されます。これらはテストの過去の実行です。
ALM Octaneは、これらの属性の一意の組み合わせごとに1つの前回の実行の詳細を保存します。前回の実行ごとに、テストの前回の実行の履歴が増えていきます。
たとえば、ChromeとFirefoxで2つの異なるリリースでテストを実行した場合、このテストには4つの過去の実行が存在することになります。
テストとテスト実行の結果をPOSTするとき、ALM Octaneは、新しいテストまたはテスト実行が作成されたかどうか、または既存のものが更新されたかどうか (PUT操作をシミュレート) を決定します。報告されたテスト実行ごとに:
-
一致するテスト実行が存在する場合、そのデータが更新されます (ステータス、開始時間、継続時間など)。
-
そのようなテスト実行が存在しない場合、新しいテスト実行が作成され、関連するテストエンティティにリンクされます。
(オプション) テスト実行がエラー/例外で終了した場合、次のようにネストされたerror要素でエラーの詳細を報告できます。
-
type属性を例外タイプに設定します。
-
message属性を例外メッセージに設定します。
-
element bodyを例外スタックトレースに設定します。
<test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="testTwo" duration="2" status="Failed" started="1430919316223">
<error type="java.lang.AssertionError" message="expected:'111' but was:'222'">java.lang.AssertionError: expected:'111' but was:'222'
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
</error>
</test_run>
(オプション) 次のように、ネストされたdescription要素にrun descriptionを追加できます。
<test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="testTwo" duration="2" status="Failed" started="1430919316223">
<description>My run description</description>
</test_run>
エラーの詳細も含まれている場合は、description要素がその後に来る必要があります。
次の表で、gherkin_test_run要素の属性について説明します。
属性名 | 説明 |
---|---|
name |
実行されたGherkinテストの名前。たとえば、Javaメソッドの名前。 |
duration |
Gherkinテストの実行時間 (ミリ秒単位)。 |
status |
Gherkinテスト実行の最終ステータス。可能な値: ‘Passed', 'Failed', 'Skipped' |
feature |
Gherkinテストのフィーチャー。このフィーチャーは次のものに関連付けられています。
|
ALM Octaneは、Gherkinテストのスクリプトフィーチャーのタグを使ってALM Octane内の各Gherkinテストを識別します (タグが存在する場合)。タグが存在するのは、そのGherkinテストをいずれかの時点でALM Octaneからダウンロードした場合です。スクリプトには、次のようなテストIDとリビジョンから成るタグが含まれています: @TID4002REV0.2.0
ALM OctaneはGherkinテスト実行を受け取ると、これらの属性を確認して実行を特定のGherkinテストに関連付けます。既存のGherkinテストに一致するものがない場合、ALM OctaneによりGherkin自動テストのエンティティが新規に作成されます。
各Gherkinテストには複数のテスト実行を関連付けることができます。各テスト実行は、テスト (タグまたはパスで一意に識別)、リリース、環境、ジョブ名で一意に識別されます。これらはGherkinテストの過去の実行です。
ALM Octaneは、これらの属性の一意の組み合わせごとに1つの前回の実行の詳細を保存します。前回の実行ごとに、テストの前回の実行の履歴が増えていきます。
たとえば、ChromeとFirefoxで2つの異なるリリースでGherkinテストを実行した場合、このGherkinテストには4つの過去の実行が存在することになります。
テストとテスト実行を他のエンティティにリンクする
テストと実行を他のエンティティにリンクできます。リンクは次の場所に表示されます。
-
グローバルコンテキスト (test_runs要素の前)、およびすべてのテスト結果にそのリンクがあります。
-
テスト結果のコンテキスト (test_run要素内)、および特定のテストと実行のみがそのリンクを持ちます。
さまざまなエンティティへのリンクは、エンティティが以下にリストされている順序で表示される必要があります。
すべてのリンクはオプションです。
注: 指定されたリンクはOctaneに存在する必要があります。それ以外の場合はエラーと見なされ (結果をPOSTするときにskip-errorsパラメーターをtrueに設定しない限り)、そのようなリンクを含むtest_runはスキップされます。
ペイロードにスイートへのリンクが含まれている場合、新しいテストまたは更新テストがスイートに割り当てられ、テスト実行はそのスイートに属するスイート実行の下に挿入されます。
リンクは、suite_ref要素を使用して、IDでのみ使用できます。
<suite_ref id="1001" external_run_id="Regression1" component=”my component”/>
- external_run_id属性: (オプション) テスト結果の外部セットの名前が含まれます。
- external_run_idが指定されている場合、新しいスイートの実行と内部の実行には指定されたexternal_run_idの名前が付けられます。それ以外の場合、新しいスイートの実行と内部の実行にはスイートの名前が付けられます。
- component属性: (オプション) スイートの実行がメンバーであるコンポーネントまたは特性の名前が含まれます (たとえば、 ALM-domain-project)。コンポーネント属性が欠落していて、親スイートに定義済みのコンポーネントフィールドがある場合、これは新しいスイートの実行が作成されるときに使用されます。
インジェクションに使用されるスイートランは、次のリンクの組み合わせによって選択されます。
- スイートの実行名 (external_run_id、またはexternal_run_idが欠落している場合はスイート名)
- release
- milestone
- program
これらのリンクで実行されるスイートがスイートに存在しない場合は、作成されます。
注: 新しいスイート実行の作成にはリリースへの割り当てが必要なため、リリースリンクを指定する必要があります。
さらに、指定されたリリースがプログラムに割り当てられている場合は、プログラムリンクも必要です。それ以外の場合は、プログラムへのリンクはオプションです。マイルストーンへのリンクはオプションです。
制限事項:
- ALM Octaneは現在、スイートの計画タブで同じテストを2回追加することを許可していません。同じテストの2つの実行をスイートの実行に挿入する場合、テストはスイートの計画タブに1回だけ追加され、特定の環境情報は含まれません。
- ランがALM Octaneに注入ALM Octaneから再実行することはできません。同じテストを再度実行するには、新しいスイート実行を作成します。
- スイートへの実行数は、単一のペイロードで1000に制限されています。超過した実行は無視されます。
ペイロードにプログラムへのリンクが含まれている場合、新規または更新された実行エンティティは指定されたプログラムにリンクされます。
リンクは、program_ref要素を使用して、IDでのみ使用できます。<program_ref id="1001"/>
プログラムとリリースの両方のリンクが指定されていて、リリースにプログラムが割り当てられている場合、そのプログラムは割り当てられたプログラムの1つである必要があります。
ペイロードにリリースへのリンクが含まれている場合、新規または更新された実行エンティティは指定されたリリースにリンクされます。
-
release要素を使用して、リリースを名前で参照します。 <release name="myRelease"/>
リリース名はワークスペースのコンテキストで一意であるため、名前によるリンクが可能です。
-
release_ref要素を使用して、IDでリリースを参照します。 <release_ref id="1001"/>
-
標準設定のリリースを指定するには、次のようにrelease要素を使用します。 <release name="_default_"/>
ペイロードにマイルストーンへのリンクが含まれている場合、新規または更新された実行エンティティは指定されたマイルストーンにリンクされます。
マイルストーンリンクは、リリースリンクとともに定義できます。指定されたマイルストーンは、指定されたリリースに属している必要があります。
リンクは、milestone_ref要素を使用して、IDでのみ使用できます。 <milestone_ref id="1001"/>
ペイロードにバックログ項目へのリンクが含まれている場合、新規または更新されたテストエンティティは指定されたバックログ項目にリンクされます。そのようなリンクを複数指定できます。
リンクは、backlog_items要素でラップされたbacklog_item_ref要素を使用してIDでのみ使用できます。
<backlog_items>
<backlog_item_ref id="2001"/>
<backlog_item_ref id="2002"/>
</backlog_items>
ペイロードにアプリケーションモジュールが含まれている場合、新規または更新されたテストエンティティは指定されたアプリケーションモジュールにリンクされます。
そのようなリンクを複数指定できます。
リンクは、product_areas要素でラップされたproduct_area_ref要素を使用してIDでのみ使用できます。
<product_areas>
<product_area_ref id="2001"/>
<product_area_ref id="2002"/>
</product_areas>
test_fields要素とtest_field要素は、新規または更新されたテストまたはテスト実行の次のフィールドの値を設定するために使用されます:テストレベル、タイプ、テストツール、およびフレームワーク。
これらのフィールドは、ALM Octaneリストベースのフィールドに対応するリストベースのフィールドです。これは、事前定義されたリストから値を選択できる (またはそのリストに値を追加できる) ことを意味します。
リスト名 | フィールド値のカーディナリティ | 事前定義された値 |
---|---|---|
Test_Level |
シングル |
ユニットテスト、システムテスト、統合テスト |
Test_Type |
多数 |
受け入れ、リグレッション、エンドツーエンド、サニティ、セキュリティ、パフォーマンス、UI、API |
Testing_Tool_Type |
シングル |
UFT One、UFT Developer、UFT Mobile、StormRunner Load、Selenium、 マニュアルランナー、SoapUI、Protractor、LoadRunner Professional、LoadRunner Enterprise |
Framework |
シングル |
JUnit、UFT One、TestNG、NUnit、JBehave、Karma、Jasmine、Mocha、Cucumber |
テストフィールドの値を参照するには、test_field要素とその属性typeおよびvalueを使用します。
-
type属性をリスト名に設定します。
-
value属性を、リストの事前定義された値の1つまたは任意のカスタム文字列値に設定します。
カスタム値を使用する場合は、ALM Octaneに新しい表示名の値として追加されるため、再利用できます。
<test_fields>
<test_field type="Test_Level" value="Integration Test"/>
<test_field type="Test_Type" value="Acceptance"/>
<test_field type="Test_Type" value="My custom test type"/>
<test_field type="Testing_Tool_Type" value="Selenium"/>
<test_field type="Framework" value="Cucumber"/>
</test_fields>
テスト実行の環境ラベルを指定できます。これらのラベルは、同じテストの異なる実行を区別し、前回の実行定義の一部です。詳細については、ALM Octane がテスト実行を一意に識別する方法を参照してください。
taxonomy要素とその属性 (typeとvalue) を、environment要素でラップして使用します。
-
type属性を、ブラウザなどの分類タイプの名前に設定します。
ALM Octaneにまだ存在しないタイプを使用する場合は、再利用できるように新しいタイプとして追加されます。
-
value属性を、リストの事前定義された値の1つまたは任意のカスタム文字列値に設定します。(例えば:
<taxonomy type="Browser" value="Chrome"/>
).カスタム値を使用する場合は、ALM Octaneに新しい値として追加されるため、再利用できます。(例えば:
<taxonomy type="MyEnvironmentType" value="MyEnvironmentValue"/>
)
事前定義された値:
タイプ | 事前定義された値 |
---|---|
AUT Env |
開発、本番、QA、ステージング |
Browser |
Chrome、Firefox、IE、Opera、Safari |
DB |
IBM DB2、MSSQL、MySQL、Oracle、Postgres |
Distribution |
Debian、Fedora、RedHat、SUSE、Ubuntu |
OS | Android、BlackBerryOS、iOS、Linux、MacOCS、WinServer2008、WinServer2012 |
<environment>
<taxonomy type="MyEnvironmentType" value="MyEnvironmentValue"/>
<taxonomy type="Browser" value="Chrome"/>
<taxonomy type="DB" value="Oracle"/>
<taxonomy type="OS" value="Linux"/>
<taxonomy type="AUT Env" value="Staging"/>
</environment>
リンクの競合を解決する
これらは、リンク要素がグローバルコンテキストとテスト結果コンテキストの両方で設定されている場合の競合の解決に関するルールです。
-
要素がproduct_areas、backlog_items、taxonomy、test_fields (TEST_TYPEのみ) などの複数の値をサポートしている場合、要素はさらに処理するためにマージされます。
-
単一のカーディナリティーを持つreleaseやtest_fieldsなど、複数の値をサポートしない要素の場合:
- skip-errorsがfalse (標準設定) の場合、そのような競合はエラーと見なされます。競合がグローバルコンテキストにある場合、処理は停止します。単一のテストの場合、そのテストはスキップされます。
-
skip-errorsがtrueに設定されている場合:
-
両方のコンテキストで異なるリリースが指定されている場合、この情報は無視されます。テスト実行にリンクされているリリースはありません。
-
単一の値をサポートするテスト特性 (フィールド) が両方のコンテキストで設定されている場合、テスト結果値のみが使用されます。
サンプルペイロード
<?xml version="1.0"?> <test_result> <release name="myRelease"/><!--set release by name--> <backlog_items> <backlog_item_ref id="2001"/> <backlog_item_ref id="2002"/> </backlog_items> <product_areas> <product_area_ref id="2001"/> <product_area_ref id="2002"/> </product_areas> <test_fields> <test_field type="Test_Level" value="Integration Test"/> <test_field type="Test_Type" value="Acceptance"/> <test_field type="Test_Type" value="End to End"/> <test_field type="Testing_Tool_Type" value="Selenium"/> <test_field type="Framework" value="Cucumber"/> </test_fields> <environment> <taxonomy type="MyEnvironmentType" value="MyEnvironmentValue"/> <taxonomy type="Browser" value="Chrome"/> <taxonomy type="DB" value="Oracle"/> <taxonomy type="OS" value="Linux"/> <taxonomy type="AUT Env" value="Staging"/> </environment> <test_runs> <test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="testOne" duration="3" status="Passed" started="1430919295889"/> <test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="testThree" duration="4" status="Skipped" started="1430919319624"/> </test_runs> </test_result>
<?xml version="1.0"?> <test_result> <test_runs> <test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="testOne" duration="3" status="Passed" started="1430919295890"> <release_ref id="1001"/> <!--set release by id--> <backlog_items> <backlog_item_ref id="2001"/> <backlog_item_ref id="2002"/> </backlog_items> <product_areas> <product_area_ref id="2001"/> </product_areas> <test_fields> <test_field type="Test_Level" value="Integration Test"/> <test_field type="Test_Type" value="Acceptance"/> </test_fields> <environment> <taxonomy type="MyEnvironmentType" value="MyEnvironmentValue"/> <taxonomy type="Browser" value="Chrome"/> <taxonomy type="DB" value="Oracle"/> </environment> </test_run> <test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="testThree" duration="4" status="Passed" started="1430919319624"> <release name="myRelease"/> <!--set release by name--> <backlog_items> <backlog_item_ref id="2003"/> <backlog_item_ref id="2004"/> </backlog_items> <product_areas> <product_area_ref id="2002"/> </product_areas> <test_fields> <test_field type="Test_Type" value="End to End"/> <test_field type="Testing_Tool_Type" value="Selenium"/> <test_field type="Framework" value="Cucumber"/> </test_fields> <environment> <taxonomy type="OS" value="Linux"/> <taxonomy type="AUT Env" value="Staging"/> </environment> </test_run> </test_runs> </test_result>
<?xml version='1.0' encoding='UTF-8'?> <test_result> <test_runs> <test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="testTwo" duration="2" status="Failed" started="1430919316223"> <error type="java.lang.AssertionError" message="expected:'111' but was:'222'">java.lang.AssertionError: expected:'111' but was:'222' at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotEquals(Assert.java:743) at org.junit.Assert.assertEquals(Assert.java:118) </error> <description>My run description</description> </test_run> </test_runs> </test_result>
<?xml version='1.0' encoding='UTF-8'?> <test_result> <test_runs> <gherkin_test_run duration="173757728" name="My Amazing Feature" status="Passed"> <feature name="My Amazing Feature" path="src/test/resources/My amazing feature_4002.feature" started="1482231569810" tag="@TID4002REV0.2.0"> <file>#Auto generated revision tag @TID4002REV0.2.0 Feature: My Amazing Feature Scenario: Amazing scenario Given user is logged in When she looks at this feature Then she is amazed! </file> <scenarios> <scenario name="Amazing scenario" status="Passed"> <steps> <step duration="173722717" name="Given user is logged in" status="passed" /> <step duration="22125" name="When she looks at this feature" status="passed" /> <step duration="12886" name="Then she is amazed!" status="passed" /> </steps> </scenario> </scenarios> </feature> </gherkin_test_run> <gherkin_test_run duration="130365" name="dfg f f" status="Passed"> <feature name="ScriptFileName" path="src/test/resources/gherkin_2008.feature" started="1482231570001" tag="@TID2008REV0.2.0"> <file>#Auto generated NGA revision tag @TID2008REV0.2.0 Feature: Another feature Scenario: Another scenario Given certain circumstances When an event happens Then something occurs </file> <scenarios> <scenario name="ScenarioName" status="Passed"> <steps> <step duration="60817" name="Given MyGiven" status="passed" /> <step duration="54430" name="When MyWhen" status="passed" /> <step duration="15118" name="Then MyThen" status="passed" /> </steps> </scenario> </scenarios> </feature> </gherkin_test_run> <gherkin_test_run duration="207011" name="My Next Feature" status="Passed"> <feature name="My Next Feature" path="src/test/resources/my-fancy-feature.feature" started="1482231570005" tag=""> <file>Feature: My Next Feature Scenario: Button opens the dialog Given user is logged in And she is in the module When she clicks the button Then the dialog pops up Scenario: Dialog is good Given user is logged in And the dialog is opened When she looks at it Then it looks good </file> <scenarios> <scenario name="Button opens the dialog" status="Passed"> <steps> <step duration="61058" name="Given user is logged in" status="passed" /> <step duration="19578" name="And she is in the module" status="passed" /> <step duration="15757" name="When she clicks the button" status="passed" /> <step duration="17327" name="Then the dialog pops up" status="passed" /> </steps> </scenario> <scenario name="Dialog is good" status="Passed"> <steps> <step duration="44123" name="Given user is logged in" status="passed" /> <step duration="12931" name="And the dialog is opened" status="passed" /> <step duration="23090" name="When she looks at it" status="passed" /> <step duration="13147" name="Then it looks good" status="passed" /> </steps> </scenario> </scenarios> </feature> </gherkin_test_run> </test_runs> </test_result>
<test_result> <suite_ref id="3001" external_run_id="regression Q01"/> <release name="_default_"/> <test_runs> <test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="myTest1" duration="82" status="Passed" started="1580375724752" /> <test_run module="/helloWorld" package="hello" class="HelloWorldTest" name="myTest2" duration="70" status="Passed" started="1580375724752" /> </test_run> </test_runs> </test_result>
参照情報: