2016-09-14 7 views
1

こんにちは私はRCPアプリケーションのために書いているテストスクリプトからJavaコードを直接実行する方法を探しています。スクリプトからJavaコードを実行しているRCPTT

私は、アプリケーション内の特定のボタンをクリックする前に、テスト中のマルチキャストソケットを設定する必要があります。このようなもの:

MulticastSocket socket = new MulticastSocket(); 
socket.setNetworkInterface(interfaceTarget); 

InetAddress group = InetAddress.getByName("220.2.2.2"); 
socket.joinGroup(group); 

これが可能かどうかわかりませんでしたか? AUTは別のプロセスで実行されるため

答えて

1

あなたは、(すなわち、書き込みやスクリプトでJavaコードを参照することで)直接、任意のJavaコードを実行することはできませんし、あなただけの外から通信することができます。言い換えれば

、スクリプトがあなたRCPTT IDEやテストランナープロセスで実行されます。テスト中の実際のアプリケーション(AUT)にはRCPTTランタイムが含まれているため、Telnetソケットを効果的に開き、コマンドを受信して​​テキスト言語で結果を送信します。したがって、すべてがそのプロトコルに固執しなければならず、プロトコルから指定されていないものはそのまま使用できません。

つまり、invokeinvoke-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でカスタムコードのいずれかの種類を実行するための出発点として

+0

を提供していますが、これは、Javaの呼び出しを許可されているだろう...あれば望ましいだろうしかし、コマンドを書くのはちょっとした仕事ではありませんでした...しかし答えに感謝します。私は他の人々のためにそれを受け入れるでしょう – BrendanM

+0

@Stefan Winkler、答えは私にはっきりしていません。またはもっと役に立つリンク? – noor

+0

@BrendanMあなたはrcpttではなく最後に実装したツールですか? – noor

関連する問題