2012-03-23 3 views
0

TestStand Testsの結果を、テストのシーケンスでアクセスできる定義済みのAPIを使用してデータベースに書き込む必要があるソリューションを探しています。 現在、テスト結果がデータベースに書き込まれる方法は、ODBCを使用する方法と、SQLステートメントを明示的にTestStandに書き込む方法です。代わりに.NETでアプリケーションを記述し、それらのSQL文をカプセル化する必要があります。.netアプリケーションを使用してTestStandの結果を外部のデータベースに書き込みます。

これはまったく可能ですか?アプリケーションを作成し、DLLをビルドし、TestStandにロードして、.Net Adpaterを使用して、テストのシーケンスで使用できるようにすることはできますか。

さらにプロセスを悪化させるために、実際の.Netアプリケーションは、実際のデータベースへの書き込みを行うWebサービスを消費します。

これは私のTestStandでの最初の経験であり、私は正しい軌道に乗っているかどうかはわかりません。私が経験したドキュメントのほとんどは、第三者オブジェクト(.Net、Active X、またはDLL)を介したデータベースのやりとりを外部化することを示唆していないようです。

はあなたに 県に感謝この

にご意見をお願い申し上げます。

答えて

2

.NETアプリケーション/ライブラリが完全に機能していれば(データベースとそのすべてに書き込むことができます)、TestStandの.NETモジュールアダプタを使用して.NETアセンブリを絶対に呼び出すことができます。問題ではありません。

1つのことをお勧めします。 .NETのステップは、テスト対象の特定のデバイス(つまり、1つのシーケンス)に対してデータベースのやり取りを行うかどうか、 (すなわち、複数のシーケンス/シーケンスファイル)に対して発生する相互作用を検出することができる。

最初のケースであれば、クライアントシーケンスファイルに.NETデータベースのステップが必要です。 後者の場合(実行されているシーケンスに対してデータベースのやりとりが必要な場合)、個々のクライアントシーケンスファイルではなく、プロセスモデルにデータベースの対話コードを配置することをお勧めします。あなたがステップの結果をログに記録したい場合は、私はあなたがあなたのサービスを呼び出す手順を置くだろうコールバック[Edit>>Sequence File Callbacks]を使用してお勧めします

:J.Jの答え@上の拡大

1

特定のシーケンスファイルのデータのみを記録する場合は、ログコードをSequenceFilePostResultListEntryに入れます。

すべてのシーケンスからステップの結果をログに記録する場合は、独自のカスタムプロセスモデルを作成(または標準のものを修正)し、ProcessModelPostResultListEntryを使用する必要があります。

どちらの場合でも、これにより、RecordResult = Trueとマークされているすべてのステップでロギングコードが確実に呼び出されます。ステップの結果は、パラメータとしてコールバックシーケンスに渡されます。ただし、コールバックでThisContext.CallerDiscardsResultsをチェックして、親SequenceCallステップで結果記録を無効にしているかどうかを確認してください。

個人的には、プロセスモデルのアプローチは、柔軟性が高い(そして、全体的なシーケンス結果を記録するための他のコールバックを提供する)ため、最良の方法だと思います。

ステップ結果以外のシナリオでデータを記録するために使用できるコールバック(PreStep、PostStep、PostStepRunTimeErrorなど)があります。

関連する問題