你不能直接執行任意的Java代碼(即,通過寫或引用Java代碼在你的腳本),因爲AUT在一個單獨的進程中運行,你只可以從外部通信。
換句話說,腳本在RCPTT IDE或測試運行過程中執行。實際測試的應用程序(AUT)只包括RCPTT運行時,它有效地打開一個telnet套接字,通過它可以接收命令並通過文本語言發送結果。因此,一切都必須遵守該協議,並且您不能執行任何未經開箱即用的協議指定的內容。
也就是說,您可以通過腳本命令invoke
和invoke-static
來調用AUT中現有的Java類和方法。
的前提條件是invoke
,你是能夠檢索通過腳本語言的對象引用。 例如,你可以使用
<get-something-from-somewhere> | get-object | invoke methodName arg0 arg1 ...
前提通過invoke-static
調用靜態方法是你要調用的方法是從AUT中訪問。爲了達到這個目的(如果你想要的方法不是AUT的一部分),你可以在AUT中添加一個測試支持包來聲明靜態方法。這樣你可以實現你的問題中給出的代碼片段。
最後,作爲第三和最先進的選項,你可以添加自己的ECL命令。這是通過實現一個由AUT運行時間定義的擴展點來實現的,並且包含AUT中的實現作爲捆綁包(類似於invoke-static
方法,但更靈活,因爲可以構建命令鏈)
對於所有三種情況, this link作爲出發點,以執行任何種類的AUT中的自定義代碼...
在我們沒有與RCPTT去爲我們的測試結束,但這將允許的Java調用......寧願如果儘管編寫這些命令並不麻煩,但是謝謝你的回答,我會接受它給其他人蔘考 – BrendanM
@Stefan Winkler,答案並不清楚,你可以給我更多的細節或者更有幫助的鏈接? – noor
@BrendanM你最終實現了哪個工具而不是rcptt? – noor