CI/CDプロセスへのHPツール適用について (1回目)

CI/CDツールとしてよく利用されているのがHUDSON、Jenkinsだと思いますので、それを利用されていることをベースに話をします。

CI/CDプロセスに単体テストまではとりこまれていると思われますしWeb系であればSeleniumを利用した機能テストを取り込んでいられるチームもよくみかけます。下の図(図1)をみていただきたいのですが、テストフェーズが進むにつれてテスト環境の複雑性とテスト対象が増えていくことがわかると思います。機能テストもWeb画面だけではなくWeb以外のテクノロジーで作られたものをどう自動化するか、性能テストや脆弱性テストもCI/CDプロセスに入れていくことがリリースプロセスを短縮するためには課題であるはずです。

01.JPG

HPの機能テストツールUFT(Unified Functional Testing)や性能テストツールLR(LoadRunner)であれば、SeleniumやJMeterでは難しいWeb以外のテクノロジーで作られたシステムを複数利用するような業務プロセスやモバイルデバイスのテストシナリオも可能であるし、複数台のテストマシンで実行された結果ログもJenkinsのレポート以外にテスト管理ツールALM(Application Lifecycle Management)で一元管理することができます。

さらに、DevOpsを視野に複雑な環境へのデプロイとプロビジョニングを考えた場合は、高いシェア率を誇るHPの運用自動化製品を組み合わせることでサーバー台数や設定が複雑になるステージング環境や本番環境への適用も実現することが可能になります。これをTOBEモデルとして描くと次のような図になります(図2)。

02.JPG

とはいえ、TOBEモデルを一気に適用するのはなかなかハードルも高いと思いますので、まずはここからという感じでいくつかのステップを踏んですすめていくのが現場の負荷も低くかつCI/CDプロセスへテスト対象範囲を広げるというメリットを享受できるかと思います。 次図(図3)のような3ステップを参考までにご紹介します。

03.JPG

まずはステップ1として、Jenkinsを利用してUFTのスクリプト実行を自動化していく方法を説明しようとおもいます。 そこで、HPツールをJenkinsで利用するためのプラグイン「HP Application Automation Tools」をJenkinsに適用してください。適用方法は通常のJenkinsプラグインの適用方法と同じです。プラグインの情報については、下記のURLを参照してみてください。 https://wiki.jenkins-ci.org/display/JENKINS/HP+Application+Automation+Tools 適用すると、下図(図4)のようにインストール済プラグインに表示されるのがわかると思います。

04.JPG

では、次にこのプラグインでUFTのスクリプトを実行できる準備として、スクリプトを実行するUFTマシンでTest Batch Runnerでまとめておきましょう。この図(図5)では、シンプルに1スクリプトしかBatch化してませんが、そこはみなさんの環境にあわせて本来、そのUFTマシンで実行するリグレッションテストをまとめてバッチ化しておいてください。

05.JPG

バッチ化したら名前をつけて保存しましょう。拡張子はmtbになりますので、そのバッチ化したファイルのパスを覚えておいてください。 いよいよ、ジョブをつくっていきましょう。わかりやすいようにUFTを実行するだけのジョブとして、「フリースタイル・プロジェクトのビルド」を選んでみます。設定項目で、ビルドの「Execute HP Test from file system」を選びましょう。ちなみに今回はUFTを設定していますが、このプラグインでLRも設定することができます(まだ私は試していませんのでだれか試されたら教えてください、というかブログ記事に投稿ください)。 Testsのところに先ほどの保存した、このテストを実行するUFTマシンのローカル内のTest Batch Runner用ファイルをフルパスで指定します(図6参照)。

06.JPG

さらにUFTのResultViewerと同じ情報をJenkinsレポートにZIPとして保存するためにビルド後の処理に「Publish HP tests result」を選んで適用、保存します。 これで準備が整いました。

つづきはまた次回に!

カテゴリ: