ロードテストでのブラウザミックスの追加
こんにちは。週末は、家族で多摩動物公園にライオンを見に行ってきました。1歳の息子は、我が家の“猛獣” シー・ズー(犬)と毎日戯れているため、動物慣れしているとはいえ、本当の猛獣にどんな反応するのか楽しみだったのですが、目の前で大きな口をあけた雄ライオンを見ても、犬の戯れるときとまったく同じでした(^^;
* 多摩動物公園では、「ライオンバス」というのがあって、バスに乗りながら窓枠につけられたエサをライオンが食べる姿を目の前でみることができます。
さて、Visual Studio Team System の Test Edition (Team Edition for Software Testers) では、ロードテスト機能があり、テストシナリオ(Web テストや単体テストなど)を仮想ユーザーを用いて、Web アプリケーションに負荷をかけながら実行し、実運用をシミュレートすることができます。
実運用を意識するということは、Web アプリケーションにアクセスするブラウザも多岐にわたることになります。IE だけでテストするなんてのは現実的ではないわけですね。
* Web テストは、IE を用いて記録をしますが、記録される情報はブラウザ非依存な HTTP Request です。
先のTech・Ed での私のセッション終了後の Ask the Speaker でも定義済みのブラウザ以外のものを追加する方法について質問をいただきました。今回はそこで回答させていただいたものを皆さんの共有しようと思います。
(ネタとしては、これもデモを用意してありましたが、やっぱり時間がなく、断念しました。他にもいろいろな小ネタ TIPS を準備していたのでそれらは、このブログや Microsoft On や MSDN オフラインセミナーなどで紹介したいと思います)
ロードテストでのブラウザの設定は、実は非常にシンプルな設定ファイルで管理されています。ブラウザの種類は言ってみればユーザーエージェントなどの設定によって決まりますので、それをとあるフォルダに追加してあげるだけになります。
まずは、以下のフォルダを開いてください:
<VSTS インストールフォルダ> \Common7\IDE\Templates\LoadTest\Browsers
<VSTS インストールフォルダ> は、VSTS 2008 Beta 2 のデフォルトの場合だと、C:\Program Files\Microsoft Visual Studio 9.0 です。VSTS 2005 のデフォルトの場合だと、C:\Program Files\Microsoft Visual Studio 8 です。
この Browsers フォルダの下に、ブラウザごとに1ファイルで、設定が記載されています。たとえば、IE6 の場合は、IE6.browser というファイルで設定されていて、中身は、
<Browser Name="Internet Explorer 6.0">
<Headers>
<Header Name="User-Agent" Value="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="GZIP" />
</Headers>
</Browser>
とった感じになっています。
どれかのファイルをコピー(ファイル名を変更)して、中身を編集することで新しいブラウザの定義を簡単に作成できます。
ブラウザ固有の情報(User-Agent や、Accept の値など)の取得は、いろいろな方法が考えられます。まずひとつは、ネット上で公開されているものをそのまま使うという方法ですね(情報ソースが信頼できるかに依存してしまいますが)。また、実際にどのような情報をブラウザから送信しているのかキャプチャして取得するという方法もあります。たとえば、 Fiddler2* というツールを使うことで取得することもできます。Web アプリケーションでも、ブラウザでアクセスするだけで、情報を表示してくれるものもいくつかあるようですね。
* Fiddler2 は、お勧めのツールです。このツールを用いることで ブラウザとWeb サイト間の送受信をキャプチャして、記録をすることができます。ここで記録した情報は、VSTS の Web テストで利用できる形式で保存することができるのです!VSTS 2005 の Web テストの記録では、HTTPRequest のみをキャプチャするため、AJAX を用いたサイト(XMLHTTPRequest)では正確にキャプチャできませんでしたが、このツールで記録したものを使えば AJAX を用いたサイトの Web テストも可能です(VSTS 2008 では、標準で AJAX を用いたサイトも記録できます!)。
ながさわ
Comments
Anonymous
September 02, 2007
こんにちは。週末は、家族で多摩動物公園にライオンを見に行ってきました。1歳の息子は、我が家の“猛獣” シー・ズー(犬)と毎日戯れているため、動物慣れしているとはいえ、本当の猛獣にどんな反応するのか楽しみだったのですがAnonymous
September 02, 2007
Software Cafe(MSエバンジェリストの長沢さんのブログ)で ブラウザミックスの追加方法ってエントリがありました。 http://blogs.msdn.com/tomohn/archive/2007/09/03/4716322.aspx