LoginSignup
43
50

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-01-17

はじめに

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

43
50
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
50