1. Webアプリケーションのテスト作成

1.1. テスト仕様書Excelの起動

../_images/selectDic.png

最初に起動すると、コントロール辞書の設定を促すメッセージが表示されます。 直後に開かれるファイルダイアログで、コントロール辞書ファイルを設定します。 コントロール辞書は、後に変更することができます。ここで選択しない場合、ファイルの再起動が必要になります。

../_images/startExcel.png

起動直後には、著作権が表示されます。

1.2. テスト仕様書シートの作成

../_images/menuNewTest.png

クイックアクセスツールバ―から、「新しくテストを作成する」を選択します。

../_images/selectTestPattern.png

テストパターンとして、S型もしくはC型を選択することができます。

../_images/newSType.png

S型を選ぶと、「S_NEW」と名付けられたシートが生成されます。

../_images/newCType.png

C型を選ぶと、「C_NEW」と名付けられたシートが生成されます。



1.3. 項目の読み込み

S型のシートを例に説明します。

FTのテスト仕様書に、各画面のテスト対象となる項目を読み込む際に、重要なポイントとなるのは、どのコントロールを操作し、どの項目を検証するのかを明確にしておくことです。 画面には、表示用、操作用の多くの項目が含まれていますが、目視ですぐに確認できたり、仕様変更が考えにくい項目などは、必ずしも自動テストの対象にする必要がないかも知れません。 そのような意味で、ある程度の事前準備は必要です。これはテスト自動化に限らず、従前のテスト方法においても必要な過程と考えます。

※ C型シートの場合、項目の操作と評価を一つのシートで行います。評価する場合には、入力操作域の設定値欄に評価式(比較する値を含む)を記入します。

例: visible=true 表示フラグがtrueであること

=~"^[0-9]+$" 項目の内部テキストが数字であること

@value=1234 項目のvalue属性が1234であること

1.3.1. 画面項目仕様書から読み込む

画面項目仕様書には、画面項目名欄、画面項目ID欄、コントロール名欄、グループID欄があることが必要です。

../_images/readSpec.png

クイックアクセスツールバ―から、「設計書を読み込む」を選択します。 Excelの仕様書を指定するためのファイルダイアログが開きます。ファイルおよびシートを指定します。

../_images/startSpecReader.png

指定したExcelファイルの指定したシートに記述された項目情報を読み込み、その一覧を表示します。 テストに使用する項目を選択してOKボタンを押下するか、一括で読み込むボタンを押下します。

../_images/readResultBySpec.png

選択された項目の情報がテストのためのExcelシートに転記されます。

最後に、入力項目の欄および遷移ボタンの欄をチェックし、必要に応じて順序を入れ替えるなどの修正を行います。例えば、ボタンであっても、画面遷移図における画面の遷移に対応していない場合、入力欄に移す方が分かりやすくなるかも知れません。

テストのためのパラメータを設定した後に、操作が設定されていない項目があれば、画面項目仕様書から除去することを検討しましょう。

※ 画面項目設計書と実際の画面の間には、項目IDが一致していないなどの不整合が起こりえます。そのような不整合をチェックするために、Web画面のテストを始める前に、設計書から出力したテスト仕様書とWeb画面から出力したテスト仕様書を比較するとよいでしょう。

※ S型のシートの注意点:コントロール辞書に遷移型に分類されているコントロールであっても、実際には、入力操作のための表示を切り替える効果を持つ場合があります。その場合には、遷移操作から入力操作の適切な位置に行を移動する必要があります。

1.3.2. Webページから読み込む

making\./img/readHtml.png

クイックアクセスツールバ―から、「HTMLを読み込む」を選択します。

../_images/targetHtml.png

Internet Expolorerが起動しますので、読み込むページのURLを指定します。

../_images/readyItemScan.png

ページの表示完了を確認してから、Excelにフォーカスを戻すと、読み込み完了を待機しているダイアログが表示されています。OKを押下すると、ブラウザからHTMLを読み込み、コントロール抽出のための解析が始まります。解析の進行状況はExcelのステータスバーに表示されます。

※ 環境により、時々、VBAとIEの間の初期接続を失敗することがあるようです。ステータスバーに解析の状況が表示されれば、その後の操作は問題なく進むはずです。

../_images/itemScanInit.png

解析が終了すると、アイテムを選択するダイアログに結果が出力されます。 タイトルの冒頭に、現在、左上のリストボックスに表示されているコントロールの名前が表示されています。「次のコントロール」ボタンを押下することにより、コントロールを切り替えることができます。

リストボックスの項目を選択すると、その下部のテキストエリアに、選択されているコントロールの部分HTMLが表示されるので、その属性などを確認することができます。

../_images/itemScanAdd.png

ダイアログ中央の「追加ボタン」を押下すると、リストボックス「アイテムリスト」に登録されます。

../_images/itemScanEdit.png

「アイテムリスト」の項目を選択すると、その下部にID、Name、GroupID、Controlが表示されます。このうち、Nameは仮に付けた名前なので編集することができます。

../_images/itemScanUpdate.png

「更新」ボタンを押下すると、「アイテムリスト」の項目を更新することができます。

../_images/readHtmlResult.png

OKボタンを押下すると、「アイテムリスト」の項目がExcelに転記されます。 「一括登録」ボタンを押下すると、とりあえず抽出したすべての項目をExcelに転記します。

出力内容を確認し、テスト対象でない項目を除去したり、遷移に関わらない項目を入力欄に移動するなどを、必要に応じて行います。

※ Webページから読み込むと、画面のタイトルおよびURLは自動的にImplementDicシートに記録されます。

※ Webページから読み込む場合には、自動テストの対象を、画面コントロールがある程度標準化されている、もしくはパターン化できている範囲に絞ることがポイントです。

※ 操作対象のコントロールの識別方法(idやnameなどの属性)をあらかじめ把握しておいた方がよいでしょう。また、src属性で指定されたURLを、直接ブラウザに貼り付けて、問題なく表示ができることを確かめておきましょう。(表示ができない場合、IEからは読み込めません)

※ S型のシートの注意点:コントロール辞書に遷移型に分類されているコントロールであっても、実際には、入力操作のための表示を切り替える効果を持つ場合があります。その場合には、遷移操作から入力操作の適切な位置に行を移動する必要があります。

1.4. バリエーションを追加する

../_images/popmenu_addvalue.png

設定値枠を追加するためには、設定値セルにおいて右クリックメニューを開き、「設定値枠の追加」を選択します。

バリエーションの指定は、「パラメータ組」のセルで「○」を記入します。



1.5. 操作の流れを作る

以下、必要な事項を選択して設定してください。 項タイトルの後ろに(S型)とあるのは、画面遷移のテストを行うときに必要な設定です。

1.5.1. 画面を遷移させる(レベル1)

1.5.1.1. 起動するURLを指定する

この画面を単独でテストするためには、ImplementDicシートのA列に「画面ID#モード_URL」、B列にURLを設定します。 HTMLから読み込む場合には、URLは自動的に設定されます。

※ モードが指定されていない場合、「#モード」は不要です。

1.5.1.2. 遷移元の画面を指定する

この画面に遷移する直前の画面を、登録します。 ImplementDicシートのA列に「画面ID#モード_TransFrom」、B列に「画面ID#モード」をカンマ区切りで指定します。 遷移テストを実行するためには、この画面に至るまでのルート上の画面のS型シートがデータベースに登録されている必要があります。

この設定を行う場合、URLの指定は不要になります。

※ 事前の準備として、Settingシートの「PanelListFile」欄に画面一覧ファイルを指定しておくと、操作がスムーズに進みます。

※ 遷移元画面は設計書の「画面一覧」ファイルを読み込んで設定することができます。但し、画面名と画面IDの表示名はコントロール辞書の標準名を使用している必要があります。

../_images/transFromMenu.png

画面IDの欄で右クリックメニューを開き、「前画面編集」を選択します。 直後に開くファイルダイアログにて、「画面一覧」ファイルを指定すると、

../_images/transFromDialog.png

画面のリストの選択するダイアログが表示されるので、前画面を指定します。この時、複数の画面を選択することができます。

1.5.2. メッセージを表示して、人の操作を待つ(レベル1)

自動では難しい操作を、人手で行うためのものです。

../_images/hand.png

設定値のセルに「hand」を記入します。

../_images/handmessage.png

テスト実行時に、上図のようにダイアログを開き、「設定内容」をメッセージとして表示し、OKボタンを押下するまで、テスト実行を中断します。

※ テストでエラーを検知してデバッグしようとする場合、エラーの直前で画面操作を止めたい場合があります。その場合には、設定値の前に文字列「hand();」を差し込みます。 ダイアログのメッセージは、差し込んだ項目の「設定内容」になります。

※ テストの自動実行を行う実行オプションでは、この命令を含む一連の操作は行なわれません。

1.5.3. キーを入力する:文字列の入力(レベル1)

../_images/textinput.png

設定値のセルに、コントロールに入力する文字列を記入します。 但し、改行は「\n」、タブは「\t」と表記します。多くのテキスト部品では、「\n」は確定操作、「\t」はフォーカスの移動として動作することに注意してください。

../_images/sendkeys_ctrldic.png

この行のコントロールについては、上図のコントロール辞書の「操作欄」において、「sendkeys()」が設定されているか、もしくは、「sendkeys->」から始まる必要があります。

※ キー入力のデフォルトの作用は、コントロール内のテキストを指定のテキストに置き換えます。 ※ 指定のテキストを指定のコントロールに追加する場合には次の書式で指定してください。

+:[追加するテキスト]

※ 「テキスト入力後、リターンキーで遷移する機能を有する」コントロールの場合、入力欄と遷移項目欄の二つに行を作ります。入力欄においては「n」を書き込まないことに注意してください。「n」を書き込むと、その段階で画面遷移してしまう可能性があります。

※ Webページがz-indexを用いている場合、ブラウザによっては操作できないことがあるようです。コントロールよりも上の層で他の要素が配置されているような場合です。

1.5.4. 項目を選択する(レベル1)

../_images/select_var.png

タブやプルダウンメニューなどの項目は、項目を特定するための文字列を、設定値セルに記入します。

../_images/tab_ctrldic.png

記入する文字列は、上図のコントロール辞書のxpath欄においてシンボル「$VAR」により指定されています。上記の例では、選択項目の表示文字列の一部を指定することになっています。属性値を指定する場合には、「@属性名='$VAR'」とするとよいでしょう。 (項目を選択するコントロールにおいて、何を指定するかは、プロジェクトのアーキテクトが標準化しておくと、効率的です)

※ Webページがz-indexを用いている場合、ブラウザによっては操作できないことがあるようです。コントロールよりも上の層で他の要素が配置されているような場合です。

1.5.5. ボタンを押下する(レベル1)

クリックする項目の設定値欄に、「click()」もしくは「\n」と記入します。

1.5.6. 日付を入力する(レベル1)

次の三通りの入力方法があります。

  • 指定されたフォーマットで文字列を指定する。

  • FTで提供している日付入力用のマクロを使用する。

書式

#マクロ名(引数)

説明

例1

#本日()

本日の日付を返す

例2

#次曜日(木曜日)

次の木曜日の日付を返す

例3

#以後営業日(/1/1)

1/1以後の最初の営業日の日付を返す

例4

#以前営業日(/1/1)

1/1以前の最初の営業日の日付を返す

などなどが使用可能です。

※ 日付入力に限らず、文字列入力用のマクロをFTに登録して使うこともできます。(アーキテクト編)

1.5.7. 表の行を選択する(レベル1)

../_images/idxkey.png

上の図の「FAQ番号」のように、コントロール名の末尾に「*」のある項目の設定値を指定することで、表の行を指定することができます。 (設定値として入力する文字列は、セルに表示されている文字列を指定するように、辞書を作っておくとよいでしょう)

以後のセルの操作は、指定された行に対して行われます。

1.5.7.1. 完全一致による行の選択

コントロール辞書のxpath

[@属性名='$VAR']もしくは[.='$VAR']の条件を含む

設定値の例

属性名に対応する文字列、もしくは、表示されている文字列

設定値を指定することで、完全に行を特定できる場合に使用します。

1.5.7.2. 部分一致による行の選択

コントロール辞書のxpath

[@属性名.has('$VAR')]、[@属性名.contains('$VAR')]もしくは[.contains('$VAR')]の条件を含む

設定値の例

部分文字列、部分文字列[数字]

  • 部分文字列を指定することで、行を特定できる場合には、末尾の[]は不要です。

  • 部分文字列により、複数ヒットする場合には、[]により何番目かを指定します。

  • []の中の数字としてlast()を指定すると、html上に存在する行のうち、最後にヒットした行を指定することができます。

※ 注意:末尾の[]により期待通りの結果を得るためには、操作対象のコントロールのxpathから抽出されたノードセットが「順序付けられている」必要があります。xpathによる結果が順序付けられているかどうかは、事前に確認しておきましょう。 ※ 注意:コントロールのページ切り替えの作りによっては、表示されている行がhtml上に存在する行の一部であることがあります。

1.5.7.3. 順番を指定することによる行の選択

コントロール辞書のxpath

シンボル$VARを含まない。

設定値の例

[数字]もしくは[last()]

稀に、属性値や表示されている文字列で行を特定できない場合があります。その場合、行の何番目かを明に指定します。

1.5.8. キーを入力する②:特殊キーとの同時押下(レベル2)

特殊キーと組み合わせた同時押下の場合、設定値欄に「chord:[」で始まる文字列を記入し、キーを特定する文字列をカンマでつないでから、「]」で閉じます。 例えば、shift,alt,zキーの同時押下の場合、次のように記入します。

chord:[SHIFT,ALT,z]

特殊キーを表現できる文字列は、以下になります。

ALT,CONTROL,SHIFT,META,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,UP,DOWN,LEFT,RIGHT, BACK_SPACE,DELETE,END,ENTER,ESCAPE,HELP,HOME,INSERT,PAGE_DOWN,PAGE_UP,PAUSE, ZENKAKU_HANKAKU

※ クリップボードによる便利な入力法  クリップボードに次のような文字列を登録しておくと、

engrave>文字列

FTにおけるテストの間、上記の文字列(「engraved>」の右側)を、chord:[CONTROL,v]により繰り返し入力することができます。 一部手動によるテストで、パスワードなど決まった文字列を何回も入力する必要に迫られた場合に、便利な手段となります。

1.5.9. ドラグする(レベル2)

※ 未検証項目です。

ドラグする項目の設定値欄に、「drag()」と記入します。

ドラグアンドドロップではなく、スライダーなどをドラグする場合には、引数として,

  • X:=x方向への移動ピクセル数

  • Y:=y方向への移動ピクセル数

をカンマつなぎで指定します。

drag(X:=100,Y:=200)

これは、x方向に100ピクセル、y方向に200ピクセルだけドラグする操作になります。 x方向だけ、あるいはy方向だけ指定することもできます。

1.5.10. ドロップする(レベル2)

※ 未検証項目です。

ドロップする項目の設定値欄に、「drop()」と記入します。

1.5.11. マウスオーバーする(レベル2)

マウスオーバーする項目の設定値欄に、「hover()」と記入します。

1.5.12. フレームにフォーカスする(レベル2)

編集中のシートでframeやiframeをテストする場合には、ImplementDicシートのA列に「画面ID#モード_Frame」、B列にそのフレームを特定するための情報を指定します。次の属性のいずれか一つを指定することができます。

識別属性

書式

src

src=ソースのURL

name

name=name属性値

xpath

xpath=画面のトップから見たフレームのxpath

title

title=フレームのタイトル

※ 書式の右辺には""を使用しないでください。

※ iframeの入れ子(iframeの中でロードするHTMLにiframe構造を記述しているケース)については、xpathを次のように記述します。

//iframe[第一階層のiframeを特定する属性条件]//iframe[第二階層のiframeを特定する属性条件]...

iframeを特定する条件としては、[@id='xxx']、[@name='xxx']、[@src='xxx']などを使用するとよいでしょう。

※ frame/iframeの内部にJavaScriptを挿入・実行し、結果をreturn文で受け取ろうとすると、Seleniumの制限によりエラーになることがあります。(詳細は、OSDNのフォーラムを参照してください)

1.5.13. 同じ画面の他のコントロールを操作する(レベル2)

書式:

$項目ID.メソッド名(引数)

を設定値欄に記入することにより、この画面の「項目ID」で指定したコントロールのメソッドを起動します。 メソッドは「click」[sendkeys]やオブジェクトのメソッドを指定します。

※ 複合コントロールの子コントロールの場合、項目IDはページにおいてユニークなければなりません。

※ Xpathに$VARを含む場合、すなわち値を設定することによりコントロールを特定できる場合には、clickの引数に値を設定します。

1.5.14. ポップアップ画面を操作する(レベル2)

書式:

$項目ID.click();$画面ID#モード.遷移ボタンの項目ID(パラメータ組名)

を設定値欄に記入することにより、この画面の「項目ID」で指定したボタンをクリックし、「画面ID#モード」の画面を開きます。 「画面ID#モード」の画面では、指定のパラメータの組み合わせで操作し、「遷移ボタンの項目ID」で指定した遷移ボタンを押下します。

※ モードが指定されていない場合、「#モード」は不要です。

1.5.15. 遷移コントロールにパラメータ組を割り当てる:S型(レベル1)

../_images/popmenu_submitlink.png

遷移コントロールに遷移先を設定するためには、遷移ボタンの行におけるパラメータ組のセルを選び、右クリックメニューを開きます。 「遷移先リンク設定」を選択します。

以後、「項目の読み込み」と同様に、遷移先の項目を読み込みます。

../_images/popmenu_submit_result_s.png

読み込みが終わると、パラメータ組のセルに文字列が記入され、ハイパーリンクが設定されています。

../_images/popmenu_submit_result_v.png

ハイパーリンクをクリックすると、V型シートの該当領域に切り替わります。 項目の読み込みで選択した項目が転記されています。

※ V型シートのレイアウトを変更した場合には、同じ操作を行えば、ハイパーリンクが更新されます。

※ 一つの「TestSuite」は、一つの遷移コントロールに割り当てられます。その遷移コントロールに対して、「〇」の付けられたパラメータ組の一連の操作が「TestCase」になります。

※ 「項目の読み込み」において、設計書から読み込む場合と、Webページから読み込む場合があります。デフォルトでは、直前に読み込んだ方法でダイアログを開きます。読み込む方法を切り替える場合には、shiftキーを押下しながら、メニュー項目を選択してください。

そのWebページのS型のテスト仕様書を作成済みの場合には、設計書を読み込む方法で、そのシートを選択すると効率的です。

1.5.16. 遷移ルートのチェックポイントを設定する:S型(レベル1)

この画面に遷移するまでの画面遷移のルートのうち、チェックポイントを、指定します。

設定値欄において、右クリックメニューで「経路選択」を選ぶと、辞書において設定されている経路の一覧から選ぶことができます。。

../_images/checkpointSelection.png

また、チェックポイントは直接指定することもできます。指定方法は以下の要素をカンマでつなぎます。

  • 画面ID#モード もしくは 画面ID

  • 画面ID#モード(パラメータ組名) もしくは 画面ID(パラメータ組名)

  • 画面ID#モード.遷移コントロールのID(パラメータ組名) もしくは 画面ID.遷移コントロールのID(パラメータ組名)

※ モードが指定されていない場合、「#モード」は不要です。

右クリックメニューで「経路検証」を選択すると、経路探索を行います。

../_images/checkpointChecker.png

探索が失敗した場合には、ルートを見直すか、現在の設計情報を補正する必要があります。

※ 遷移ルート上で同じ画面を複数回通過するパターンはサポート対象外です。

※ 画面遷移の経路が指定されている場合、経路上の各画面においてのテーブルの設定や外部プロセスは実行されません。

1.5.17. 画面のタイトルを設定する:S型(レベル1)

画面遷移の際に、遷移が成功したかどうかを判定するために、画面のタイトルをチェックするための正規表現を設定します。

また、遷移先が別のWindowである場合、設定されたタイトルの正規表現を元にWindowへのフォーカスを切り替えます。複数画面を利用するアプリケーションの場合には、タイトルの設定は必須になります。

ImplementDicシートのA列に「画面ID#モード_Title」、B列に正規表現を設定します。 HTMLから読み込む場合には、自動的に設定されます。

設定されていない場合には、チェックは行われません。

1.5.18. 実行前設定枠を追加する:S型

入力操作の行において右クリックメニューを開き、「前提条件欄作成」を選択します。

1.5.19. 実行前設定を行う①:S型 SQL文によりテーブルの状態を設定する(レベル2)

V型のシートにおいての検証が可能です。

  • 概要欄

    SQL文(insert/update)を指定します。

    SQL文の中にシンボル$[位置番号]([]を省略しないこと)を埋め込むことが可能です。位置番号は1以上の整数で、設定値欄で指定されたパラメータの位置を指定することにより、SQL文を完成させることができます。

    設定のバリエーションを容易に作り込むことができます。

    書式としては、次の文が可能です。

    • insert into tableName(カラム1,...) values(...)

    • update tableName set カラム1=val1,... where ...

    • delete from tableName [where ...]

  • 設定値欄

    SQL文内に埋め込まれたシンボルに代入するパラメータ値をカンマ区切りでつなぎます。 概要欄のSQLが完成形(シンボルがなく、セットする値が指定されている)の場合、「-」を指定します。

1.5.20. 実行前設定を行う②:S型 外部プロセスを起動する(レベル2)

S型のシートにおいての設定が可能です。

  • 概要欄

    コマンドライン(テスト環境におけるフルパス+共通のオプション)

  • 設定値欄

    オプションのバリエーションを指定する。

    例:-option:value //設定値欄にはvalueバリエーションに応じた値を指定します。



1.6. 検証方法を指定する

検証については、C型シートおよびV型シートにおいて、設定することができます。 以下は、S型の場合を基準に説明します。

C型の場合、評価式のセルと評価値のセルの文字列を、結合して「設定値」セルに記入することになります。

※ 検証の実行により、コントロールのフォーカスが変更されることがあります。

※ 画面遷移の経路が指定されている場合、経路上の各画面においての検証は行われません。

※ 検証の実行は評価式のセル対して1回だけ設定することができます。

1.6.1. メッセージを表示して、人の目視による確認を待つ(レベル1)

自動では難しい判定を、目視で行うための機能です。 評価式のセルに「verify」を記入します。評価値のセルは空のままにしておきます。

テスト実行時に、「hand」と同様のダイアログを開き、メッセージとして表示します。 画面の状態がメッセージ通りならば「YES」を、異なっているならば「NO」を押下します。

※ C型の場合、メッセージは「設定内容」欄を表示します。S型の場合、Vシートの「評価内容」欄を表示します。

1.6.2. 画面をキャプチャーする(レベル1)

テスト実行時に画面をキャプチャーし、実行後に目視で結果を確認するための機能です。

画面をキャプチャーする場合には、項目IDのセルに空の行を作成します。 評価式のセルに「snapshot()」を記入します。評価値のセルは空のままにしておきます。

この項目が表示域外にある場合、この項目を画面内にスクロールすることを試みます。項目IDが空欄の場合、スクロールは実行されません。

exifツールと連携する環境を構築している場合、キャプチャーした画像のexif領域にメッセージを書き込むことができます。

※ C型の場合、メッセージは「設定内容」欄を表示します。S型の場合、Vシートの「評価内容」欄を表示します。

※ S型で遷移ルートのチェックポイントを指定している場合、そのルート上でsnapshotが指定されていれば、その画像キャプチャーも実行されます。

※ S型の入力操作においても、「snapshot(メッセージ文);」を設定値欄に記入することにより、画面キャプチャーを実行することができます。

1.6.3. 項目の表示領域をキャプチャーする(レベル1)

項目の表示領域をキャプチャーすると、他の部品で隠されていたり、欠けていたりなどが、容易に判別することができます。 項目IDの欄で指定したコントロールの領域をキャプチャーします。 設定値欄のセルに「snapshot()」を記入します。

※ 利用シーンとしては、文字欠けやレイアウトの確認や障害対策後の再発防止用テストに使用するとよいでしょう。キャプチャーする領域を極小にできるため、正常状態との比較がプログラムによって実現しやすくなります。

※ $VARを含むxathで指定されるコントロールについては、

[$VAR=値].snapshot()

で指定します。[]は必要です。

1.6.4. 項目の親の表示領域をキャプチャーする(レベル2)

例えば、プルダウンメニューの選択結果をキャプチャーするために、クリックするコントロールの祖先を指定したい場合があります。 そのような場合には、

ancestor::祖先のタグ[$VAR=選択項目の値].snapshot()

のように祖先のタグ指定します。$VARを指定する必要がない場合、[$VAR=...]は省略します。

例: 選択項目の中に太郎があり、その選択結果をキャプチャーする場合、選択項目のoptionタグの上にselectタグがあるので、

ancestor::select[$VAR=太郎].snapshot()

と指定します。

1.6.5. 項目の状態を検証する(レベル1)

  • 可視かどうかの判定

    • 評価式: visible=

    • 評価値: true/false

  • 有効

    • 評価式: enable=

    • 評価値: true/false

※ 選択項目のように値を指定することによりコントロールの識別が確定するコントロールについては、

  • 評価式: 識別用文字列.enable=

  • 評価値: true/false

のように記述することができます。

※ $VARを含むxathで指定されるコントロールについては、評価式の前に

[$VAR=値].

を追記します。

1.6.6. 項目の属性値を検証する(レベル1)

評価式:

@属性名[=~<>]

評価値:

比較する値

※ $VARを含むxathで指定されるコントロールについては、評価式の前に

[$VAR=値].

を追記します。

1.6.7. 項目の内部テキストを検証する(レベル1)

評価式:

=~

評価値:

正規表現

1.6.8. アラートのメッセージを検証する(レベル1)

評価式:

alert=~

評価値:

正規表現

1.6.9. 表コントロールの特定の行を検証する(レベル2)

V型シートにおいては、評価式と評価値しか指定できる欄がありませんので、表の特定の行をフォーカスする手段が必要になります。そのような時は、評価式の先頭に、次の書式で行を特定する命令を記述します。

識別コントロールのid.idx(引数);

引数:行を特定するための文字列。

記入例: ITEMIDXXXX.idx(10-10000);

コントロールIDがITEMIDXXXXの列に、「10-10000」がある行にフォーカスする場合。

1.6.10. 項目のメソッドの返却値を検証する(レベル2)

項目のオブジェクトが保持するメソッドの返却値を評価することができます。

評価式:

メソッド名()[=<>~]

評価値:

比較する値

1.6.11. 項目間の相関性を検証する(レベル2)

javascript関数を使用します。 (Javascript関数は、アーキテクトがプロジェクトの必要性に応じて用意するとよいでしょう)

例:コントロール辞書のReservedDicシートのA列にJavaScript関数「function foo」が定義されているとします。fooでは、引数として二つの要素オブジェクト(コントロール)の属性を比較し、属性の状態に正しい相関があればtrue、そうでなければfalseを返すものとします。

その場合、評価式として

foo($項目ID1,$項目ID2)=

評価値として

true

を指定します。

但し、項目ID1および項目ID2は比較するコントロールIDです。FTにより自動的に要素オブジェクトに変換されます。

※ FTでは引数の先頭に$を付けることにより、それが項目IDであれば対応する要素オブジェクトに変換します。

※ Javascript関数に定義された返却値に応じて比較演算子や値を設定することができます。

1.6.12. 操作による画面更新時間を計測する(レベル1)

次の関数を設定値欄に記述することにより、操作から画面更新までの必要な時間を計測できます。 FTの処理に要するごく僅かな時間も加算されますが、ストップウォッチで手動計測するよりは、正確な計測が期待できます。

  • 計測開始

    次の命令を操作の直前に設定します。

    startClock();

  • 計測終了

    次の命令を、画面更新時に現れるコントロールの検証の評価式欄の最初に設定します。

    endClock(メッセージ);

  • 出力されるログの書式

    "<ftClock millisecs="ミリ秒" name="メッセージ" />"

1.6.13. 実行後状態検証のための枠を追加する:S型

V型シートの評価行において、右クリックメニューを開き、「外部確認行追加」を選びます。

1.6.14. 実行後の状態を検証する①:S型 SQL文によりテーブルの状態を検証する(レベル2)

V型のシートにおいての検証が可能です。

  • 概要欄

    SQL文(select)を指定します。

    select文の中にシンボル$[位置番号]([]を省略しないこと)を埋め込むことが可能です。位置番号は1以上の整数で、設定値欄で指定されたパラメータの位置を指定することにより、select文を完成させることができます。

    これにより判定条件のバリエーションを容易に作り込むことができます。

※ select文にて抽出する項目については、*、count(*)、検索対象のテーブルの項目名を使用します。(*は半角にすること)

  • 評価式欄

    exists4SQL :select文による検索結果が空でなければ成功。

を指定します。

  • 設定値欄

    select文内に埋め込まれたシンボルに代入するパラメータ値をカンマ区切りでつなぎます。 概要欄のSQLが完成形(シンボルがない)場合、「-」を指定します。

1.6.15. 実行後の状態を検証する②:S型 外部プロセスを起動する(レベル2)

V型のシートにおいての検証が可能です。 コントロール辞書に登録されているコマンドライン情報については、右クリックメニューで入力支援が使用できます。

外部プロセスが0を返すなら成功、1以上を返すなら失敗とみなします。

  • 概要欄

    外部プロセス呼び出しのコマンドラインを記述します。

  • 評価式欄

    記入する必要はありません。

  • 設定値欄

    記入する必要はありません。

1.6.16. かかった時間を計測する(レベル2)

  • 時間計測の開始時刻の設定

入力操作において

startClock();

を設定値欄に記入する。

  • 時間計測を計測する

入力操作欄もしくはV型シートの評価式欄において

endClock(ラベルとして使用する文字列);

を設定値欄に記入する。 この行のコントロールはクリック可能になるまでの時間を計測する。

結果は、ログに以下の書式で出力される。

<ftClock millisecs="ミリ秒単位の時間" name="ラベル文字列"/>>



1.7. その他の操作

1.7.1. 画面項目を読み込む

Excelの機能を使って空白の行を挿入した後で、画面項目仕様書もしくはWebページから項目情報を読み込みたい場合があります。 右クリックメニューを開き、「画面項目読込」をクリックします。

ステータスバーに、読込モードが表示されています。モードを切り替える場合には、SHIFTキーを押下しながら、メニュー項目をクリックします。

1.7.2. データベースに登録する

../_images/quikMenu.png

クイックアクセスツールバーから「データベースに登録する」を選択します。 アクティブなシートがS型もしくはC型であれば、そのシートの情報をデータベースに保存します。

1.7.3. テストを実行する

クイックアクセスツールバーから「テストを実行する」を選択します。 アクティブなシートがS型もしくはC型であれば、そのシートからデータベースに保存されているパラメータを使用して、テストを実行します。

※ パラメータを変更してテストする場合には、一度、データベースを更新する必要があります。

テストの実行はコマンドラインから行うことができます。

java -jar FTのjarfile -nodisplay -testcase:["キーワード","ログファイルのパス",0,0,true] -onlyauto:true

キーワードとして、例えば、「S.画面IDの先頭から機能単位を示す適当な文字列%」を指定すると、該当する機能の全てのS型のテストを実行することができます。

  • -onlyauto:true

Excelにおいて縦列のパラメータの組み合わせの操作と検証でhand()もしくはverify()を含む場合、それをスキップして実行します。夜間バッチなどの自動実行のテストに使用します。

このオプションが指定されない場合、キーワードで指定された全てのテストを実行します。

  • -webtest.browser:ブラウザ名

 コマンドラインで、firefox, chrome, safari, ie, edgeを切り替えるために使用するオプションです。ブラウザ名は、firefox, chrome, safari, ie, edgeのいずれかを指定します。それ以外のブラウザを指定する場合、-browser.jsonオプションで指定します。

  • -browser.json:以下の書式

    { "url":"ドライバサーバのURL","capabilities":DesiredCapabilitiesのJson }

 コマンドラインで、RemoteWebDriverを介して、firefox, chrome,safari, ie, edge以外を使用することができます。

1.7.4. テスト結果を読み込む

クイックアクセスツールバーの「テスト結果を読み込む」を選択すると、Activeなシートに対応するログを元に、結果をシートに記入します。

1.7.5. テストを削除する

クイックアクセスツールバーの「データベースから削除する」を選択すると、Activeなシートに対応するテストをデータベースから削除します。

1.7.6. レイアウトを走査する

手でシートのレイアウトを編集した後に、この処理を行います。以後の処理をマクロが正しく実行できるようにするためです。

1.7.7. ブックを移入する

最新版のFTが公開されるタイミングで、旧版のブックを移行する必要が生じる場合があります。そのような場合、クイックアクセスツールバーで「ブックを移入する」を選択すると、旧版の内容を最新版のブックに読み込むことができます。、

1.7.8. コントロール辞書を選択する

コントロール辞書を切り替えることができます。

1.7.9. マニュアルを開く

FTのマニュアルサイトを読み込みます。