Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space FUNCTDEV and version SVC2020.2

...

スクリプト機能で Java を使用し、変更された Java ファイルを SOAtest で再コンパイルするには、「SOAtest での Eclipse Java プロジェクトの使用を参照して環境設定方法の詳細を確認してください。

...

SOAtest 環境内でコードをコンパイルしたい場合、SOAtest Java Project ウィザードを使用します。ウィザードは、 拡張 API にアクセス可能な新規 Java プロジェクトを作成します。詳細については、 

「SOAtest での Eclipse Java プロジェクトの使用」

を参照してください。

拡張 API を使用する Java コードを作成していて、

...

Anchor
scripting_java
scripting_java
Java

  • スクリプトの [クラス] フィールドに Java クラスを指定する場合、クラスパス上に存在するコンパイル済みクラスを指定する必要があります。[クラスパスの変更] リンクをクリックすると表示される設定ページでクラスパスを指定できます。
  • 使用するクラスがパッケージの一部である場合、クラス名のほかに完全なパッケージ名を指定する必要があります (例: java.lang.String)。
  • SOAtest または Virtualize 内で変更されリコンパイルされたクラスを使用するスクリプトがある場合、メソッドが呼び出されると、SOAtest または Virtualize はクラスをリロードし、最新のクラスを使用してオブジェクトを作成します。次の接頭辞で始まるパッケージのクラスに対しては、この機能は適用され ません。
    • sun.
    • com.sun.
    • org.omg.
    • javax.
    • sunw.
    • java.
    • com.parasoft.
    • webtool.
    • wizard.
  • 修正およびリコンパイルされたクラスを手動でリロードするには、[クラスのリロード] をクリックします。

Anchor
scripting_JavaScript
scripting_JavaScript
JavaScript

  • レガシーの SOAtest JavaScript エミュレーションは FESI をベースにしています。Oracle Nashorn など他のスクリプトエンジンを使用することを推奨します。詳細については以下を参照してください。
  • JavaScript メソッドまたは JavaScript ツールからクラスパス上に存在する Java クラスおよびメソッドを呼び出せます。
    • たとえば、Nashorn を使用していて、JavaScript から SOAtest 拡張 API の Application.report() を呼び出すには、次のように参照します。Java.type("com.parasoft.api.Application"): var Application = Java.type("com.parasoft.api.Application") Application.report("Message", "Result Window")

    • 推奨しないレガシーエンジンを使用して、JavaScript から SOAtest 拡張 API の Application.report() を呼び出すには、次のように参照する必要があります。Packages.com.parasoft.api.Application.report()また、名前の前に Packages を付けることで、次のように Application.report と Java クラスがあるパッケージ名を参照することもできます。 var Application = Packages.com.parasoft.api.Application Application.report("Message", "Result Window")

  • 指定されたスクリプトが有効で実行可能かをチェックするには (またはメソッド エントリを [メソッド] ボックスに追加するには)、スクリプトの指定に使用したオプションに応じて [ファイル] または [テキスト] テキスト フィールドを右クリックし、ショートカット メニューの [評価] をクリックします。

Anchor
scripting_Jython
scripting_Jython
Jython

Jython の書き方や Jython から Java クラスを呼び出す方法などの Jython (Java と統合された Jython の実装) の詳細については、http://www.jython.org を参照してください。SOAtest および Virtualize には Jython 2.5.2 が付属しています。

  • Jython スクリプトを使用する場合、[設定] パネルの [スクリプト] タブで jython.home および jython.path 変数を指定しなければならない場合があります。この 2 つの変数は、Jython モジュールを探すために使用されるので、Jython モジュールをインポートしていない Jython コードは、これらの変数を設定せずに使用できます。jython.home には Jython のインストールディレクトリを指定します。jython.path は、jython.home/Lib ディレクトリ以外の場所にあるモジュールのパスを追加するために使用されます。jython.path には複数のパスを指定できますが、jython.home には 1 つのディレクトリだけを指定します。jython.home および jython.path 変数を設定した場合、変更を反映するには、SOAtest または Virtualize を再起動する必要があります。
    • 他のモジュールをインポートする場合、まだ Jython 2.5.2 をインストールしていなければ、jython.org から Jython 2.5.2 をダウンロードしてインストールする必要があります。Linux の場合、java -jar jython_installer-2.5.2.jar を実行します。Windows の場合、jython_installer-2.5.2.jar をダブルクリックします。
  • 指定されたスクリプトが有効で実行可能かをチェックするには (またはメソッド エントリを [メソッド] ボックスに追加するには)、スクリプトの指定に使用したオプションに応じて [ファイル] または [テキスト] テキスト フィールドを右クリックし、ショートカット メニューの [評価] をクリックします。

Anchor
scripting_groovy
scripting_groovy
Groovy

次のコードは Groovy スクリプトのサンプルです。

Code Block
import com.parasoft.api.*;   boolean customAssertion(Object input, ScriptingContext context) { String value = context.getValue("Books", "title"); Application.showMessage("Value from data source is " + value) Application.showMessage("Value from SOAP response is " + input.toString()) return input.toString().contains(value); }

Anchor
scripting_JSR 223_Scripting_Languages
scripting_JSR 223_Scripting_Languages
JSR 223 スクリプト言語

 JSR 223 「Scripting for the Java Platform」仕様を実装する任意のスクリプト エンジンを認識するよう SOAtest を構成できます。  Oracle Nashorn はデフォルトで利用可能です。その他のエンジンを追加できます。

Anchor
scripting_Oracle_Nashorn_JavaScript
scripting_Oracle_Nashorn_JavaScript
Oracle Nashorn JavaScript 

Oracle Nashorn ECMAScript エンジンは Java に含まれているため、デフォルトで利用可能です。次のコードは Oracle Nashorn スクリプトのサンプルです。


Code Block
var Application = Java.type("com.parasoft.api.Application")   function customAssertion(input, context) { value = context.getValue("Books", "title"); Application.showMessage("Value from data source is " + value) Application.showMessage("Value from SOAP response is " + input.toString()) return input.toString().contains(value); }

Mozilla Rhino JavaScript 

Mozilla Rhino は、Java ランタイムに含まれるオリジナルの ECMAScript エンジンです。  Mozilla Rhino は Oracle Nashorn の前身であり、 Java 8 で Oracle Nashorn に切り替わりました。バージョン 9.10 より前の SOAtest/Virtualize には Java 7 が付属しており、Mozilla Rhino が含まれていました。Mozilla Rhino エンジンを使用する以前のバージョンの SOAtest/Virtualize で保存されたスクリプトは、現在のバージョンでは、Mozilla 互換拡張をロードした Oracle Nashorn エンジンで実行されます。この互換拡張は、このような目的のために Nashorn の一部として Oracle が提供しています。互換拡張をロードすることで、以前と同様にスクリプトは機能し続けますが、実行時パフォーマンスは大幅に向上しました。

現在、Mozilla Rhino を使って保存したスクリプトは、[言語] ボックスで JavaScript (Mozilla Rhino compatible) と表示されます。これは、Mozilla 互換拡張がある Nashorn でスクリプトが実行することを表します。新規にスクリプトを作成した場合、JavaScript (Mozilla Rhino compatible) オプションは表示されません。JavaScript (Oracle Nashorn) だけが表示されますが、これは Mozilla 言語拡張をロードしません。互換拡張をロードする必要がある場合は、スクリプトの先頭に load("nashorn:mozilla_compat.js"); を追加してください。詳細は https://wiki.openjdk.java.net/display/Nashorn/Rhino+Migration+Guide#RhinoMigrationGuide-Compatibility-script を参照してください。

Mozilla Rhino は Oracle Nashorn に切り替わったため、Mozilla Rhino の使用は推奨しません。ただし、Mozilla Rhino は他の JSR 223 互換スクリプトエンジンと同様に SOAtest で使用できます (「その他の JSR 223 スクリプト言語」を参照)。Mozilla Rhino に含まれる次の 2 つの jar ファイルを [システムプロパティ] の下の [設定] パネルでクラスパスに追加する必要があります。Rhino js.jar および js-engine.jar詳細については https://wiki.openjdk.java.net/display/Nashorn/Using+Rhino+JSR-223+engine+with+JDK8 を参照してください。

ビルド済み jar ファイルは maven central からも取得できます。

Anchor
scripting_Other_JSR_223_Scripting_Languages
scripting_Other_JSR_223_Scripting_Languages
その他の JSR 223 スクリプト言語

その他の JSR 223 スクリプト言語を利用可能にするには、スクリプト エンジンをクラスパスに追加します([Parasoft] 設定パネルに移動し、[システム プロパティ] エリアに追加します )。

たとえば、JSR 223 を実装する JRuby スクリプト エンジンを追加できます。それには、http://jruby.org/ から JRuby をダウンロードしてクラスパスに配置します。

次のコードは JRuby スクリプトのサンプルです。


Code Block
require 'java' Application = com.parasoft.api.Application   def doSomething(input, context) Application.showMessage("hello world") end

その他の拡張に関するリソース

ユーザー定義のカスタム スクリプトを実行する Extension ツールを作成し、適用する方法の詳細については「Extension Tool (カスタム スクリプト)」を参照してください。 スクリプトを使用して SOAtest を拡張する詳細な手順については、「スクリプトによる SOAtest の拡張」を参照してください。