簡體   English   中英

RCPTT從腳本運行Java代碼

[英]RCPTT running Java code from the script

我正在尋找直接從我為RCP應用程序編寫的測試腳本中運行某些Java代碼的方法。

在單擊應用程序中的特定按鈕之前,我需要在測試中設置一個多播套接字。 像這樣:

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

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

我想知道這是否可能嗎?

您不能直接執行任意Java代碼(即,通過在腳本中編寫或引用Java代碼),因為AUT在單獨的進程中運行,並且您只能從外部進行通信。

換句話說,該腳本在您的RCPTT IDE或測試運行器進程中執行。 實際的被測應用程序(AUT)僅包括RCPTT運行時,該運行時有效地打開了一個telnet套接字,通過它它可以接收命令並通過文本語言發送結果。 因此,一切都必須遵守該協議,並且您不能開箱即用地執行該協議未指定的任何操作。

也就是說,您可以通過invokeinvoke-static腳本命令在AUT中調用現有的Java類和方法。

invoke前提條件是您能夠通過腳本語言檢索對象引用。 例如,您可以使用

<get-something-from-somewhere> | get-object | invoke methodName arg0 arg1 ...

通過invoke-static靜態方法的前提是要從AUT內訪問要調用的方法。 要實現此目的(如果所需的方法還不是AUT的一部分),則可以將測試支持包添加到聲明靜態方法的AUT中。 這樣,您可以實現問題中給出的代碼段。

最后,作為第三個也是最高級的選項,您可以添加自己的ECL命令。 這是通過實現由AUT運行時定義的擴展點並將其作為捆綁包含在AUT中的實現來實現的(類似於invoke-static方法,但更為靈活,因為可以構建命令鏈。

對於所有這三種情況, 此鏈接都是在AUT中執行任何類型的自定義代碼的起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM