準備と実行最終更新日: 2020年6月21日

customizeフォルダの準備

Chrome Driverを配置する

  1. はじめに、テストを動作させるため、Chrome Driver (WebDriver for Chrome) ファイルを取得してください。次の URL からダウンロードできます。
    https://sites.google.com/a/chromium.org/chromedriver/downloads
  2. ダウンロードしたファイルを展開します。Windows OS の場合、chromedriver.exe になります。
  3. 展開したファイルを Wagby インストールフォルダの customize フォルダ直下に保存します。

tsmフォルダの作成

インストールフォルダ直下の customize/test フォルダに "tsm" フォルダを作成します。

環境設定ファイル

customize/test/tsm フォルダに "env.def" という名前のファイルを用意します。

内容は次のようにします。

:baseUrl: "http://localhost:8921/wagby"
:headless: "false"
:fastSetValue: "false"
:webdriver.chrome: "customize/chromedriver.exe"
命令 説明
:baseUrl: :baseUrl: "http://localhost:8921/wagby" 起動しているサーバのURLを指定します。省略時は "http://localhost:8921/wagby" です。
:headless: :headless: "false" ヘッドレスモードで実行します。省略時は false です。
:fastSetValue: :fastSetValue: "false" 入力時、文字を一括入力します。パフォーマンス向上につながります。省略時は false です。
:webdriver: :webdriver.chrome: "customize/chromedriver.exe" WebDriverを指定します。省略時は customize/chromedriver.exe です。

env.def ファイルが存在しない場合、すべて上記のデフォルト値が使われます。

サンプルのテストシナリオ

同じく tsm フォルダに、拡張子 ".tsm" というファイルを一つ以上、用意します。

1つの tsm ファイルから、1つのテストクラス (javaファイル) が生成されます。ファイル名は任意です。複数のテストシナリオを用意する場合、tsm フォルダに複数のファイルを用意します。

tsm = Test Scenario Macro

ここでは、はじめてのテストシナリオとして、アプリケーションにログオンし、ログオフするだけの簡単なマクロを用意してみます。このファイルを LogonTest.tsm という名前で、tsm フォルダに保存してください。

= はじめてのテスト
:group: "t001"
:id: "LogonTest"
== ログオンのテスト
ログオン "admin" "wagby"
ページタイトル? "メニュー"
== ログオフのテスト
ログオフ
タイトル? "Wagby アプリケーション ログオン"
このテストシナリオには、記述するためのルール(文法)があります。文法の詳細は次ページで説明します。

注意

文字コードは UTF-8 で保存してください。(それ以外の文字コードで保存すると、ビルドエラーになります。)

テストを実行する

ここまでで、次のファイル構成となっています。

customize
 |
 |- chromedriver.exe
 |- test
     |
     |- tsm
         |
         |- env.def
         |- LogonTest.tsm

ダウンロード

env.def と LogonTest.tsm を含んだファイルをダウンロードできます。

ダウンロード後、customize/test/tsm フォルダに展開してください。

テストコードの生成

今回はログオンとログオフのテストのみのため、モデルは定義しなくてもよいです。まだフルビルドを行っていない場合は、フルビルドを行ってアプリケーション (wagbyapp) を用意してください。

コンソールを開きます。misc フォルダで、次のコマンドを実行します。

> lib/ant wtf.clean wtf.gentest wtf.build

tsmファイルが存在すると、テストプログラムの自動生成とコンパイルが自動的に行われます。

図1 コマンドの実行
図2 テストプログラムの自動生成が完了
生成されたテストプログラムは次の場所に生成されます。
wagbydesigner/webapps/wagbydesigner/WEB-INF/env/work/srcgen/test/jp/jasminesoft/wagby/tests/t001/LogonTest.java

実行

テストを実行します。misc フォルダで、次のコマンドを入力します。ビルドしたアプリケーションが起動され、テストが自動実行されます。テスト終了後、アプリケーションが停止します。

> lib/ant tomcat-start wtf.test wtf.junitreport tomcat-stop
図3 テストを実行する
図4 テストの実行中(ブラウザが自動で操作されている)
図5 テスト終了

テスト結果の確認

Wagbyインストールフォルダ直下に work/target/junit/index.html が用意されています。このファイルをブラウザで開きます。

図6 Junitによるレポート

macOSの場合

macOS Catalina で動作させる場合の手順は次の通りです。

  1. Mac版のChromeDriverを入手します。
  2. 展開した chromedriver を customize フォルダに保存します。
  3. env.def は次のように記述します。拡張子 ".exe" を含めません。
    :webdriver.chrome: "customize/chromedriver"
    
  4. customize/chromedriverを事前に起動します。コンソールで起動すると次のようなメッセージが表示され、待ち受け状態となります。
    Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}) on port 9515
    Only local connections are allowed.
    Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
    
  5. Wagbyアプリケーション (wagbyapp) を起動します。
  6. miscフォルダにて、コマンドを実行します。
    > ant wtf.test wtf.junitreport
    
  7. テスト終了後、Wagbyアプリケーション (wagbyapp) を停止します。