このセクションの内容:

はじめに

Selenium Executor ツールを使用すると、SOAtest で実行できる他のさまざまな種類のテストと組み合わせて Selenium テストを実行できます。JUnit に必要な WebDriver ライブラリを提供することで、テストに必要な依存関係を自動的にセットアップします。これにより、テスト環境やテスト データのセットアップ、このツールによる単体テストの実行、モバイル テストの実行など、より広範な一連のイベントの一部として Selenium テストを編成する単一のテスト シナリオを設計して実行することができます。

前提条件

インストール

このツールは、UI またはコマンド ラインからインストールできます。

UI からのインストール

  1. [Parasoft ] > [設定] を選択し、[システム プロパティ] をクリックします。
  2. [JAR の追加] をクリックし、seleniumexecutor.jar ファイルを選択します。
  3. [適用] をクリックします。
  4. SOAtest/Virtualize を再起動します。

コマンドラインからのインストール

settings.properties ファイルの system.properties.classpath プロパティに eleniumexecutor.jar ファイルを追加します。例:

system.properties.classpath=<PATH_TO_JAR>/seleniumexecutor.jar 

使用方法

Selenium Executor ツールは、[テストの追加] ウィザードでスタンドアロンツールとして追加できます。テストのクラス フォルダーまたは jar ファイルに、実行する JUnit が含まれている必要があります。その他の依存ライブラリを jar/フォルダーにインクルードしたり、システム プロパティに追加したりできます。ツールはまず jar/フォルダーを確認し、その後 (必要があれば) システム プロパティを確認します。

設定

このツールは、システム プロパティを使用して、SOAtest に付属の IEDriverServer.exe および chromedriver.exe へのパスを提供します。デフォルトでは、Selenium はこのシステム プロパティを自動的に読み込んで使用します。代わりに、JUnit テストは以下のシステムプロパティを使用して、これらの設定を手動で上書きできます。

以下のツール フィールドを設定できます。

フィールド説明必須
JAR またはクラス フォルダー

テストのクラス フォルダーまたは jar ファイルを指定します。 

必須
クラスjar またはクラス フォルダーから実行する Selenium クラスを指定します。任意
メソッド実行する Selenium メソッドを指定します。指定したクラス内のすべてのテスト メソッドを実行する場合は、空白のままにします。任意
データ

JUnit で動的に変更するデータ値を指定します。このフィールドは、セミコロンで区切られたキーと値のペアをサポートします。例: 

firstName=John;lastName=Doe 

これらの変数には、Java の System Properties オブジェクトを使用して JUnit ソース コード内からアクセスできます。例: 

string lastName = System.getProperty("lastName") 

任意

次の例は、クラス内のすべてのテスト メソッドを実行するようにツールを構成する方法を示しています。

結果の参照

実行の詳細および結果については、[コンソール] ビューにレポートされます。また、テストの失敗が検出された場合、品質タスク ビューにレポートされます。

JUnit テストからコンソールへのメッセージのレポート

com.parasoft.api パッケージをプロジェクトにインポートしてアプリケーション コンテキストにアクセスすると、SOAtest が Selenium テスト実行からのメッセージをコンソールにレポートできるようになります。

Application.showMessage("this displays in the console");

  <SOATEST_INSTALL>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root/ ディレクトリにある com.parasoft.api.jar ファイルを Java プロジェクトのクラスパスに追加して、リソースをインポートします。

JUnit テストからの値の取得

SOAtest の出力を Selenium Executor にアタッチして、Selenium JUnit のテスト出力からデータを取得し、そのデータを他のテストで使用することができます。どの値を保存するかを指定するように Selenium を構成し、適切なツールを実行ツールの Selenium 出力にアタッチする必要があります。データは XML フォーマットで連結されたツールに渡されます。たとえば、Diff ツール、XML Assertor、または XML Data Bank ツールにデータを送信できます。

JUnit Output の設定

JUnit はアプリケーション コンテキストにアクセスし、custom_tool_junit_output キーの下にある標準的な Java Map に必要な値を格納する必要があります。Selenium Executor ツールは、保存されたマップのアプリケーション コンテキストをチェックし、ツールの "JUnit Output" 出力に渡される XML に変換します。マップのキーおよび値は文字列でなければなりません。

アプリケーション コンテキストにアクセスするには、「JUnit テストからコンソールへのメッセージのレポート」の説明に従って com.parasoft.api パッケージを Selenium にインポートします。

別のツールにデータを送信

XML データを処理するツールに JUnit テストの出力データを送るには、次の操作を行います。

  1. Selenium Executor を右クリックし、[出力の追加] をクリックします。
  2. 出力を受け取るツールを選択し、[終了] をクリックします。

この例では、値を後続のテストで使用できるように、口座残高を XML Data Bank に保存します。次の手順が実行されます。

  1. JUnit テストは、値を含むマップを作成します。
  2. マップはアプリケーション コンテキストに配置されます。
  3. マップ内の値は XML ドキュメントに変換され、Selenium の出力に接続されたツールに渡されます。
public void testParabank() throws Exception {
	driver = new FirefoxDriver();
	
	// Navigate and log in to page
	driver.get("http://parabank.parasoft.com");
	driver.findElements(By.className("input")).get(0).sendKeys("john");
	driver.findElements(By.className("input")).get(1).sendKeys("demo");
	driver.findElements(By.className("login")).get(2).submit();

	// Extract desired value
	String accountBalance = driver.findElementByXPath("//*[@id=\"accountTable\"]/tbody/tr[1]/td[2]").getText();

	// Create map representing name-value pairs for XML
	Map<String, String> map = new HashMap<String, String>();

	// Place extracted value into map
	map.put("accountBalance", accountBalance);

	// Get the Parasoft Scripting Context
	ScriptingContext context = Application.getContext();

	// Place the map in the context with the custom_tool_junit_output
	context.put("custom_tool_junit_output", map);
	}

このテストを実行するように構成された Selenium Executor ツールを追加し、 XML Data Bank ツールを Selenium の出力に追加します。

どの値を抽出して他のツールで使用するかを指定します。マップのコンテンツは、Selenium の出力に添付されたツールに渡される XML ドキュメント内の <root> 要素の下に表示されます。この例では、値アサーション ツールが追加されました。

サード パーティのコンテンツ

このプラグインは、以下のサード パーティのコンテンツを含みます。

その他のライセンスの詳細については、Parasoft Burp Suite Extensions の licenses フォルダーを参照してください。