System Monitoring Column <システム監視コラム>

Webシナリオ監視

Category: 監視ツール編

2016.11.09

目次

はじめに

2016年度新卒入社の中西です! 現在私はWebシナリオ監視のサービス開発にかかわっています。 今回、RworksのWebシナリオ監視について知識を整理したのでご紹介したいと思います。

web%e3%82%b7%e3%83%8a%e3%83%aa%e3%82%aa%e7%9b%a3%e8%a6%96%e3%81%ae%e3%83%ad%e3%82%b4

まず「従来のWeb監視」で、できることとできないことについてまとめます。
次に「RworksのWebシナリオ監視」をご紹介し、「RworksのWebシナリオ監視」によって新しくできるようになった監視についてまとめます。
最後に、Webシナリオ監視の使用例をいくつかご紹介します。

従来のWeb監視とは?

従来のWeb監視

そもそもWeb監視とはなんでしょうか。インターネット経由で監視を行うことでしょうか。Webページが閲覧できることを監視することでしょうか。とらえ方によって解釈はそれぞれだとは思います。

本記事ではWebサイトで見せたいコンテンツが意図通りに動いているかどうかを監視することを指してWeb監視と呼びたいと思います。Web監視と一言にいいましても、様々なアプローチで監視は行われます。代表的な監視項目は以下のものです。

  • Webサーバーのプロセスの死活
  • ポート応答(TCP/80, TCP/443)
  • ローカルホストからのHTTP応答
  • インターネット経由のHTTP応答

Webサーバーのプロセス死活はその名の通りで、ApacheやnginxなどのWebサーバーの役割を担うプロセスが存在しているかどうかを監視するものです。
ポート応答監視は、HTTPもしくはHTTPSに割り当てられているポート(一般的に80番と443番)が応答を返すかどうかを監視するものです。
ローカルホストからのHTTP応答は、Webサーバーからローカルホスト(自分自身)に対してHTTPリクエストを送り、レスポンスコードが200であるか否かを判断することにより監視を行います。また、レスポンスコードだけではなく、レスポンスのボディに特定の文字列が存在するか否かなども監視する場合もあります。例えば、トップページのレスポンスコードが200であり、かつ “ようこそ” という文字列が存在していたら正常とみなす、といった具合です。
インターネット経由のHTTP応答はローカルホストからではなく、インターネット越しにHTTPリクエストを送り、レスポンスを見ることにより監視を行います。

当社の監視では、監視対象のWebサーバーに監視エージェントをインストールしておき、監視エージェントから上記の結果を監視サーバーに定期的に送って監視を行うケースが多いです。ただし、インターネット経由のHTTP応答監視に関しては監視サーバーから監視対象のWebサーバーにHTTPリクエストを送り、監視を行います。

web%e7%9b%a3%e8%a6%96

スクレイピングを利用した監視

本記事ではもう一歩進んだWeb監視、ページ遷移の監視についても考えます。
例えば、通販サイトなどの会員制のWebサイトでユーザのログインページからログイン結果のページへ意図通りに遷移するかを監視する、といった場合です。この場合、上記で触れた通常のインターネット経由のHTTP応答の監視のみですと意図通りの監視は行えません。なぜならばログインページからログイン結果ページへ遷移するためには、ログイン名やパスワード、その他の会員情報がHTTPリクエストのパラメータとして必要になるためです。
そこで、ページ遷移を含めたWebサイトの監視としてWebスクレイピングという技術を応用します。

Webスクレイピングとは、Webサイトから情報を抽出する技術のことを指します。Webスクレイピングを用いたWeb監視は、この技術を応用して疑似的なページ遷移を行うことにより監視を行います。
具体的な手順としては、まずあらかじめWebスクレイピングにより対象のWebサイトを解析し、ページ遷移の際にどのようなデータが送受信され、どのようなHTTPリクエストのパラメータが生成されているかを確かめ、ページ遷移に必要なデータ全てを抜き出します。
例えば、前述の会員制のWebサイトの例で考えると、ユーザ名やパスワードなどのフォームにユーザが入力する値、前ページから引き継いだHTTPリクエストのパラメータ、JavaScriptによって動的に生成される値、etc… です。そして、これらの得られたパラメータをもとにスクリプトによってHTTPリクエストを作成し、遷移先ページのリクエストをWebサーバに送ります。また、その際にリダイレクトの処理があるとすればその処理もスクリプトによって再現する必要があります。
このように、WebスクレイピングによりHTTPリクエストのパラメータを生成することで疑似的なページ遷移が可能となり、遷移先のページのデータが意図通りに返ってくるか否かの監視を行うことが出来るようになります。

問題点

ここまででWeb監視についてページ遷移の監視まで紹介してきましたが、これらには問題点があります。

まず、時間や労力などのコストの問題が挙げられます。
単純なHTTP応答の監視であれば時間をかけずに実現が可能ですが、ページ遷移も監視項目として加えたい、と考えたときに前述のWebスクレイピングを用いた監視の導入が必要です。Webスクレイピングを用いた監視では、ページ遷移においてどのパラメータが必要になるかをきっちりと解析しなくてはならないため、紹介した他のWeb監視項目と比べて時間と労力が必要になってしまいます。そのため、お客様からご依頼を頂いてから監視を開始するまでに時間がかかってしまう上、費用もかかってしまいます。
また、webサイトの仕様変更がある場合には、それに伴いそのパラメータの解析が必要になり、これも時間と労力が必要となってしまいます。

別の問題点として、紹介してきたWeb監視では監視できない項目がある、ということが挙げられます。JavaScriptの動作の監視がこの例として挙げられます。
従来のWeb監視ではJavaScriptが実行された結果を確認することが出来ません。このことから、WebサイトのHTTPの応答は監視上は正常だけれども、実際にブラウザでWebサイトを閲覧したときには一部のJavaScriptによる機能が正常に動いていない、というケースや、JavaScriptによって生成されるはずの要素が存在していないというケースなどが存在します。
これらのケースは障害として検知したいのですが、従来のWeb監視では監視することができません。

次に紹介するWebシナリオ監視はこれらの問題を解決します。

RworksのWebシナリオ監視の特徴

RworksのWebシナリオ監視では従来のWeb監視とは違い、実際にWebブラウザを動かして監視を行う点に特徴があります。 Webページのリクエスト、JavaScriptの実行、ページの遷移、etc…、これらの動作をWebブラウザにやってもらい、その結果から正常か否かを判断しようという監視です。

RworksのWebシナリオ監視は、OSSのWebテストツールであるSelenium(セレニウム)を利用しています。SeleniumはWebブラウザで操作するタスクの自動化やWebアプリケーションのテストなどの用途で用いられます。Webシナリオ監視はこのSeleniumをWebサイトの監視に応用しよう、というものです。

Seleniumにはテストケースと呼ばれるブラウザの操作手順を記すものがあります。このテストケースをSeleniumに渡してあげることで、実際にブラウザがテストケースに沿って自動的に操作されるのですが、詳しいSeleniumの動作については別の機会に書くことにします。Webシナリオ監視では監視項目としての情報(名前やURL等)や「意図通りの挙動」を示す操作手順等をすべて含めて「シナリオ」と呼び、シナリオ通りにブラウザを定期的に動かして意図通りの動作をするかどうかを監視します。

web%e3%82%b7%e3%83%8a%e3%83%aa%e3%82%aa%e7%9b%a3%e8%a6%96

このようにWebシナリオ監視では、Webブラウザが実際に処理した結果を監視しています。WebブラウザがJavaScriptを実行してくれるため、その実行結果を正常か否かの判断材料に使うことができます。これにより、このボタンをクリックした結果この要素がJavaScriptによって生成されて、その生成された要素の中にこのリンクが存在するからそのリンク先にこの文字列が存在するかを監視する、ということができます。またJavaScriptが実際に動作するので、Ajaxのような非同期の処理の結果も確認できます。

また、シナリオはWebブラウザを実際に動かして操作の記録を取る形で作成します。このため、ページ遷移のような複雑な処理の監視も容易に実装できます。従来のWeb監視では、ページ遷移の監視を導入する際にスクレイピングを行いWebサイトの解析をしてHTTPリクエストの生成を行っており、これを行うのに時間と労力を割いていました。Webシナリオ監視ではHTTPリクエストのパラメータの生成は全てWebブラウザが行ってくれるため、従来のWeb監視の様にWebサイトの仕様を1から10まで細かく解析してパラメータを生成する、といったことをするための時間と労力をかける必要がなくなります。

シナリオの可読性が高い、という点もメリットとして挙げられます。RworksのWebシナリオ監視においてシナリオはHTML形式で保持されており、監視コンソール上から読みやすい形となっています。例えば、以下のようなシナリオを考えます。

  1. Rworksのウェブサイトのトップページを開く
  2. 「アールワークスとは」という文字列が書かれたリンクをクリックし、ページが表示されるまで待つ
  3. 「id=sec0」という属性を持ったHTML要素に「30年以上の実績を持つ、経験豊富なIT企業です」という文字列があるかを確かめる
    • このシナリオを、監視コンソールから確認すると下図のように閲覧することができます。

      %e3%82%b7%e3%83%8a%e3%83%aa%e3%82%aa_%e3%82%b3%e3%83%b3%e3%82%bd%e3%83%bc%e3%83%ab

      図の項目では、1、2、3に対応する動作が 「 open / 」,「 clickAndWait link=アールワークスとは 」, 「 verifyText id=sec0 30年以上の実績を持つ、経験豊富なIT企業です」 となっており、直感的に分かりやすいと言えます。
      このようにシナリオの可読性が高いことから、お客様にどういうシナリオを用いて監視している、といった情報の共有が容易となるというメリットがあげられます。また、シナリオの変更なども容易であることもメリットとしてあげられます。

Webシナリオ監視の使用例

ここまで紹介してきたWebシナリオ監視ですが、最後にいくつか使用例をあげます。

会員制の通販サイトでの使用例

会員制の通販サイトなどで何らかの障害が発生し商品の発注が出来ない、といった場合に機会損失の発生につながってしまう可能性があります。Webシナリオ監視では、会員がログインするところから商品を発注するところまでの処理が意図通りに動いていることを確認できます。さらにそのまま発注処理が進んでしまうと困るので、その発注のキャンセル操作までをシナリオに含めることで一通りの機能を監視できます。

プロモーションサイトで商品などの紹介ページでの使用例

商品の紹介ページで、ダイアログボックスやスライドショーのような動きの多い処理を行っている場合を考えます。この処理が何らかの障害が発生して意図通りの画像や文字列が表示されない場合、商品のイメージダウンにつながってしまう可能性があります。 Webシナリオ監視ではダイアログボックスの処理が実行された結果、意図通りに画像や文字列が表示されているか、のような監視が行えます。

情報サイトやポータルサイトでの使用例

情報サイトやポータルサイトで、検索機能を埋め込んでいる場合を考えます。何らかの障害が発生して検索機能が正常に動作せず、検索結果がおかしいという場合、ユーザーが離れて行ってしまう可能性があります。Webシナリオ監視ではフォームによるキーワード検索やタグのリンクをクリックした結果、表示されるコンテンツが意図したものであるかどうかの監視が行えます。

企業のコーポレートサイトや製品のサポートサイト

企業のコーポレートサイトや製品のサポートサイトでWebでの問い合わせを受け付けている場合を考えます。何らかの障害が発生し、問い合わせフォームが動作しない場合、エンドユーザーからのクレームにつながってしまう可能性があります。Webシナリオ監視では、フォームにダミーの顧客情報を入力し、確認画面から問い合わせ完了画面までの処理が正常に行えるかどうかの監視が行えます。

まとめとおわりに

従来のWeb監視についてとRworksのWebシナリオ監視についてをまとめ、ご紹介しました。RworksのWebシナリオ監視では、実際にWebブラウザが動いた結果を監視対象が正常か否かの判断材料とすることができます。これにより、従来のWeb監視と比べて出来るようになったこと、便利になったことが増えました。

Webシナリオ監視サービス

Webシナリオ監視サービス

Webシナリオ監視サービス

お客様の Webサイトの一連の操作をユーザ視点で自動監視する、クラウド型監視サービス。「実際のWebブラウザ(Chrome, Firefox, IE)やAndroid実機を利用」し、オンラインショップであればログインして商品を購入するまでのWebブラウザを使った一連の処理の流れを、定期的にトレースして監視することができます。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Webシナリオ監視サービスカタログ

    Webシナリオ監視サービスの提供機能、活用シーン、料金をご確認いただけます。実ブラウザを使ってユーザ視点で定期監視を行い、Webサイトの異常を早期に検知できます。

Tag: Webシナリオ監視

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php