0

モジュール式のsoapuiフレームワークがあります。これは、さまざまなスイートに編成されたビジネス オペレーションに基づいてテスト ケースを実行できることを意味します。これを念頭に置いて、現在のテスト ケース (別のスイートにある) で使用する他のテスト ケースのデータが必要になります。これを達成するために、現在のテスト ケースで Run TestCase ステップを使用します。これは、テスト ケースをスイート 1 で実行し、必要なデータをプロジェクト プロパティを介して現在のテスト ケース (スイート 2) に取り込みます。現在のテスト ケースを実行した後、プロジェクト プロパティをクリアする必要があります。私はそれを行うためのグルーヴィーなコードを持っています。問題は次のとおりです。これはモジュール式であるため、CURRENT テスト ケースの実行後にのみプロジェクト プロパティをクリアする必要があります。テスト ケース レベル内でティアダウン スクリプトを使用すると、これが実行中の現在のテストケースではない場合でも、プロジェクトのプロパティが常にクリアされるため、機能しません。つまり、私の現在のスイートはスイート 2 です。スイート 2 のすべてのテスト ケースには、プロジェクト プロパティを削除するティアダウン スクリプトがあります。スイート 3 でテスト ケースを実行し、スイート 2 のテスト ケースからのデータが必要な場合、スイート 2 (テスト ケース レベル) にあるティアダウン スクリプトが原因で、プロパティが表示されません。繰り返しますが、現在のテスト ケースから最後のステップを実行するときにクリアする必要があるだけで、モジュール実行時に他のテスト ケースに影響を与える必要はありません。それが理にかなっていることを願っています。スイート 2 (テスト ケース レベル) にあるティアダウン スクリプトにより、プロパティは存在しません。繰り返しますが、現在のテスト ケースから最後のステップを実行するときにクリアする必要があるだけで、モジュール実行時に他のテスト ケースに影響を与える必要はありません。それが理にかなっていることを願っています。スイート 2 (テスト ケース レベル) にあるティアダウン スクリプトにより、プロパティは存在しません。繰り返しますが、現在のテスト ケースから最後のステップが実行されたときにクリアする必要があるだけで、モジュールの実行時に他のテスト ケースに影響を与える必要はありません。それが理にかなっていることを願っています。

補足として、このフレームワークを使用すると、アドホック テスト用のスイートごとにビジネス オペレーションをテストできます。また、最初から最後まで完全な回帰を実行することもできます (すべてのスイートを連続してテストします)。完全な回帰実行も台無しにしないための解決策が必要です。

これを行う方法についてのアイデアはありますか?

4

1 に答える 1

0

これを行うには、プロジェクト、スイート、テスト ケースのすべてのレベルで、セットアップと破棄のスクリプトを作成する必要がありました。

セットアップ スクリプト内で、Is_Running という変数を作成しました。次に、「Is_Running」が NULL の場合、その変数に、現在実行中のプロジェクト、スイート、またはテスト ケースの名前を入力するという if ステートメントを作成します。たとえば、プロジェクト レベルで実行している場合、このコードは最初にコンテナー Is_running に何かがあるかどうかを確認し、そうでない場合はその変数にプロジェクト名を書き込みます。

次に、各レベルでティアダウン スクリプトを使用します。これは、Is_Running 変数が実行中のレベルの現在の名前と等しい場合は、プロジェクト プロパティを消去するというものです。これにより、プロジェクトのプロパティは、現在のレベルの実行が終了したときにのみ消去され、テストの途中では消去されません (他のスイートを使用している場合)。

例: スイート レベルでテストを開始し、"Suite3" の実行を選択した場合、セットアップ スクリプトは Is_Running 変数に "Suite3" を書き込みます。Suite3 が Suite2 を使用して必要なテスト ケースを実行すると、Suite2 のセットアップ スクリプトは Is_Running 変数が null ではないことを認識し、その名前を Is_Running コンテナーに書き込みません。そのため、名前が一致しないため、Suite2 ティアダウン スクリプトはプロジェクト プロパティを消去しません。Suite3 がすべてのテスト ステップを完了すると、Teardown スクリプトは Is_Running が Suite3 で満たされていることを確認し、プロジェクト プロパティを削除します。

このアプローチにより、プロジェクトを任意のレベルで実行でき、現在のスイートの実行が終了した後にのみプロジェクト プロパティを削除できます。上記のすべての作業を行うには、groovy を十分に理解する必要がありましたが、この質問で探していたのはそのアプローチです。より簡単な方法を知っている場合は、メモを残してください。

于 2015-08-19T01:30:29.083 に答える