Edited at

Excel単体テスト仕様書からIE/EXE自動操作用のVBSコードを自動生成する。

More than 3 years have passed since last update.


はじめに

SIerにおけるWebシステム開発では、操作中の画面のスクリーンショットやデータベース内のデータをEXCELファイルに貼り付け、動作が正しい事を保証するエビデンスとして残す習慣があります。

その作業を自動化する手段として、Selenium Webdriverやそれに類する製品がありますが、現場によってはセキュリティポリシーの問題で導入できない事があります。

そのセキュリティポリシーを守った上で、先の作業を自動化するアプローチとして、PaperTesterを作りました。

InternetExplorer用マクロ(VBScriptコード。キー入力を再現する事でEXEも操作できる)をExcel単体テスト仕様書からWindows標準機能(ExcelVBAなし)で自動生成します。


PaperTesterの概要

PTXL_SRT.gif


InternetExplorer(IE)/EXEの操作内容をExcel単体テスト仕様書(PaperTester.xlsx)に記入していくと、 ワークシート関数で自動操作用のVBScriptコードを生成します。

生成されたコードをテンプレートコード(Execute_PaperTester.vbs)に埋め込み実行する事で、 IE/EXE操作用ライブラリ(PaperTester.vbs)が呼び出され、IE/EXEが自動操作されます。

又、スクリーンショットとSQL文の実行結果がエビデンス記録ブック(EvidenceTemplate.xlsx)に貼り付けられます。


参照:GitHub - nezuQ/PaperTester


デモ

PTDEMO.gif


demoフォルダをWindowsPCにダウンロードし、Execute_PaperTester.vbsをダブルクリックして下さい。

IEが起動し、デモ用のWebページの画面項目が自動操作されます。

又、メモ帳が起動し、自動操作されます。

その後、スクリーンショットやダミーデータベース(_database.xlsx)の値がエビデンス記録ブック(EvidenceTemplate.xlsx)に貼り付けられます。


参照:GitHub - nezuQ/PaperTester


操作方法

PTEXP_01.gif

PTEXP_02.gif


PaperTester.xlsxの書き方

 1.テストケース名を記入する。テストケース番号は自動的に割り当てられます。

 2.確認内容・想定結果を記入する。

 3.操作名・引数を記入する。入力できる値はdataシートに説明があります。

 4.その他項目を任意で記入する。

Execute_PaperTester.vbsへのコードの埋め込み方

 1.PaperTester.xlsxの操作コマンド列の値を一括でコピーし、Execute_PaperTester.vbsの"本処理"の箇所に貼り付ける。

 2.同ファイルの"設定値"の箇所にある pt.ConnectionString に接続文字列を記入する。※SQL文を発行しない場合は未記入にする。

 3.上書き保存する。

テスト(IE/EXE自動操作)の実行方法

 1.Execute_PaperTester.vbsをダブルクリックする。

 2.IE/EXE起動時にIE/EXEが最前面に来なかった場合は、IE/EXEをクリックし、最前面に移動する。

 3.終了メッセージのポップアップを待つ。※Alt + F4 で処理を強制終了できる。(非推奨)


参照:GitHub - nezuQ/PaperTester


操作コマンド一覧(PaperTester.vbs



  • IEを開く

    OpenIE


  • IEを取得する(最初のもの)

    GetIE 0

  • IEを取得する(最後のもの)

    GetIE -1

  • EXEを起動する

    Run "%0"

  • IE/EXEを閉じる

    Quit

  • 戻る

    GoBack

  • 全画面表示を行う

    FullScreen

  • 全画面表示を止める

    NormalScreen

  • 画面を最大化する

    MaximumWindow

  • 画面を最小化する

    MinimumWindow

  • 画面を標準表示にする

    NormalWindow

  • 待機する

    Sleep %0

  • URLで遷移する

    Navigate "%0"

  • 次のIEをアクティブにする

    ActivateNextIE

  • 前のIEをアクティブにする

    ActivateBeforeIE

  • 指定フレームをアクティブにする

    ActivateFrame %0

  • 元ドキュメントをアクティブにする

    ActivateDocument

  • フォーカスを当てる

    Focus "%0"

  • 入力する(Value使用)

    ValueInput "%0"

  • 入力する(Copy&Paste使用)

    PasteInput "%0"

  • 入力する(SendKeys使用)

    KeyInput "%0"

  • クリックする

    Click "%0"

  • 文字列をペーストする

    Paste "%0"

  • キー入力する

    SendKeys "%0"

  • スクリーンショットを撮る(画面全体)

    FullScreenShot "%0"

  • スクリーンショットを撮る(アクティブ画面のみ)

    ScreenShot "%0"

  • スクリーンショットを撮る(画面全体, 表示箇所のみ)

    FullScreenShot4VisibleArea "%0"

  • スクリーンショットを撮る(アクティブ画面のみ, 表示箇所のみ)

    ScreenShot4VisibleArea "%0"

  • SQL文を発行する

    ExecuteSQL "%0"

  • 画面項目を検証する(検証NG時は処理中断)

    ValidateAttribute "%0"

  • 画面項目を検証する(検証NG時は処理続行)

    Record2ValidateAttribute "%0"

  • 画面タイトルを検証する(検証NG時は処理中断)

    ValidateTitle "%0"

  • 画面タイトルを検証する(検証NG時は処理続行)

    Record2ValidateTitle "%0"

  • Javascriptを実行する

    ExecuteJS "%0"


参照:GitHub - nezuQ/PaperTester


関連ページ

Qiita - Excelスクショ問題の解決策を現役エンジニアが本気で考えた。

http://qiita.com/nezuq/items/d2ff540cdba00d41bfda

http://qiita.com/nezuq/items/8b9438108b5195a3c0bf