あなたは、(すなわち、書き込みやスクリプトでJavaコードを参照することで)直接、任意のJavaコードを実行することはできませんし、あなただけの外から通信することができます。言い換えれば
、スクリプトがあなたRCPTT IDEやテストランナープロセスで実行されます。テスト中の実際のアプリケーション(AUT)にはRCPTTランタイムが含まれているため、Telnetソケットを効果的に開き、コマンドを受信してテキスト言語で結果を送信します。したがって、すべてがそのプロトコルに固執しなければならず、プロトコルから指定されていないものはそのまま使用できません。
つまり、invoke
とinvoke-static
のスクリプトコマンドを使用して、AUTの既存のJavaクラスとメソッドを呼び出すことができます。 invoke
ため
前提条件を使用すると、スクリプト言語を介したオブジェクトの参照を取得することができることです。 例えば、あなたがinvoke-static
経由の静的メソッドを呼び出すために
<get-something-from-somewhere> | get-object | invoke methodName arg0 arg1 ...
前提条件を使用することができ、あなたが呼び出したいメソッドがAUT内からアクセス可能であることです。これを達成するために(そしてあなたの望むメソッドが既にAUTに含まれていない場合)、静的メソッドを宣言するテストサポートバンドルをAUTに追加することができます。この方法で、あなたの質問に与えられたコードスニペットを実装することができます。
最後に、第三と最も先進的なオプションとして、あなたはあなた自身のECLのコマンドを追加することができます。これは、AUTランタイムによって定義された拡張ポイントを実装し、AUTにバンドルとして実装を含めることによって実現されます(invoke-static
のアプローチと同様ですが、コマンドチェーンを構築できるので、はるかに柔軟性があります)。
3つのケースすべてについて、 this linkは、我々のテストのためにRCPTTに行かなかった最後に... AUTでカスタムコードのいずれかの種類を実行するための出発点として
を提供していますが、これは、Javaの呼び出しを許可されているだろう...あれば望ましいだろうしかし、コマンドを書くのはちょっとした仕事ではありませんでした...しかし答えに感謝します。私は他の人々のためにそれを受け入れるでしょう – BrendanM
@Stefan Winkler、答えは私にはっきりしていません。またはもっと役に立つリンク? – noor
@BrendanMあなたはrcpttではなく最後に実装したツールですか? – noor