このセクションの内容:
はじめに
Selenium Executor ツールを使用すると、SOAtest で実行できる他のさまざまな種類のテストと組み合わせて Selenium テストを実行できます。JUnit に必要な WebDriver ライブラリを提供することで、テストに必要な依存関係を自動的にセットアップします。これにより、テスト環境やテスト データのセットアップ、このツールによる単体テストの実行、モバイル テストの実行など、より広範な一連のイベントの一部として Selenium テストを編成する単一のテスト シナリオを設計して実行することができます。
前提条件
- Selenium 2.44 がサポートされます。
- JUnit 3.8.x または JUnit 4
- このツールには SOAtest 9.8.1 以降が必要です
インストール
このツールは、UI またはコマンド ラインからインストールできます。
UI からのインストール
- [Parasoft ] > [設定] を選択し、[システム プロパティ] をクリックします。
- [JAR の追加] をクリックし、seleniumexecutor.jar ファイルを選択します。
- [適用] をクリックします。
- 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 テストは以下のシステムプロパティを使用して、これらの設定を手動で上書きできます。
- webdriver.ie.driver - path to IEDriverServer.exe
- webdriver.chrome.driver - path to chromedriver.exe
以下のツール フィールドを設定できます。
フィールド | 説明 | 必須 |
---|---|---|
JAR またはクラス フォルダー | テストのクラス フォルダーまたは jar ファイルを指定します。 | 必須 |
クラス | jar またはクラス フォルダーから実行する Selenium クラスを指定します。 | 任意 |
メソッド | 実行する Selenium メソッドを指定します。指定したクラス内のすべてのテスト メソッドを実行する場合は、空白のままにします。 | 任意 |
データ | JUnit で動的に変更するデータ値を指定します。このフィールドは、セミコロンで区切られたキーと値のペアをサポートします。例:
これらの変数には、Java の System Properties オブジェクトを使用して JUnit ソース コード内からアクセスできます。例:
| 任意 |
例
次の例は、クラス内のすべてのテスト メソッドを実行するようにツールを構成する方法を示しています。
結果の参照
実行の詳細および結果については、[コンソール] ビューにレポートされます。また、テストの失敗が検出された場合、品質タスク ビューにレポートされます。
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 テストの出力データを送るには、次の操作を行います。
- Selenium Executor を右クリックし、[出力の追加] をクリックします。
- 出力を受け取るツールを選択し、[終了] をクリックします。
例
この例では、値を後続のテストで使用できるように、口座残高を XML Data Bank に保存します。次の手順が実行されます。
- JUnit テストは、値を含むマップを作成します。
- マップはアプリケーション コンテキストに配置されます。
- マップ内の値は 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>
要素の下に表示されます。この例では、値アサーション ツールが追加されました。
サード パーティのコンテンツ
このプラグインは、以下のサード パーティのコンテンツを含みます。
- JUnit (Eclipse Public License 1.0)
その他のライセンスの詳細については、Parasoft Burp Suite Extensions の licenses フォルダーを参照してください。