XAインテグレーションテスト自動化計画 処理シーケンス

メモ:最終的にこんな感じの流れでやることに

  1. 使用するConnector/JのJARを抽出してant/libへコピー
  2. テストクライアントをant/libへコピー
  3. 環境変数PATHとCLASSPATHをバックアップ
  4. WebLogic環境変数設定用スクリプト"setWLSEnv.sh"を呼び出し
  5. 環境変数PATHとCLASSPATHに追加
  6. Antを起動、ログは/dev/nullへ
    • 便宜上MySQLを起動
    • Antタスク"wlserver"を使ってWebLogic起動,ドメインを再生成
    • Antタスク"wlconfig"を使ってドメインにデータソースを追加
    • Antタスク"wldeploy"を使ってテストアプリをインストール
    • 便宜上MySQLを停止
    • (Antの処理終了、WebLogic自動停止)
  7. Antを起動、ログをコンソールへ
    • MySQLをAntから起動
    • WebLogicをAntから起動(生成ドメイン/startWebLogic.shをspawn呼び出し+socketチェック)
    • JUnitをAntから起動、テスト実行
    • WebLogicをAntから停止(生成ドメイン/stopWebLogic.shをspawn呼び出し+socketチェック)
    • MySQLをAntから停止
    • テスト結果を表示
  8. 環境変数PATHとCLASSPATHを元に戻す

使用するAntも単にプロジェクトに組み込むだけでなく,各サーバごとに用意する.それによりテスト終了後にant/libからJARを削除する必要がなくなる.これで環境依存部分は全部排除できるかな? テスト実施者(QAチーム)はテストに使用したいMySQLWebLogic,Connector/Jを用意するだけであとはCVSからcheckoutしてbuild.shを呼べばいいだけになるはずで,テスト実施者は必要最小限のログしか見ないですむはず.

生成されたstartWebLogic.sh等は事前に設定しておいたCLASSPATHを読んでくれない.一体どうやって3rdPartyのドライバを組み込めというのか.この間のエントリで引用したようにstartWebLogic.shは改変が前提なのかな? まあこのスクリプトドメインを再生成しても中身が変わらないということが分かったので改変済みのを用意しておいて起動前に差し替えすることで対応.



―――――ヽ(´ー`)ノ―――――!!!
やっと改造完了.なんか苦労して作ったドミノ倒しがちゃんと予定通りに最後まで動いてくれたのを見たのような達成感.ドミノと違って何度でもできるけどね.

予定ではbatchと対応したshを書けばLinuxでも同様に動く,はず.