SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio 2005 Team Edition for Software Testersを使ってみよう

VSTTのロードテストでパフォーマンスを強化する

Visual Studio 2005 Team Edition for Software Testersを使ってみよう(2)


  • X ポスト
  • このエントリーをはてなブックマークに追加

高度なロードテストの編集

 ここまでの解説でロードテストの作成、実行、編集方法について見てきました。ここでは、より現実に即し、より高度なロードテストを作成するために押さえておきたいいくつかのポイントを紹介します。

テストシナリオの高度な組み合わせ

 テストミックス、ブラウザミックス、ネットワークミックス、ロードパターンはそれぞれ自由に設定できますが、これらを組み合わせて使われるパターンについては、細かく設定することができません。例えば、Webテスト1相当の機能はIE6、IE5.5から使われ、IE6.0はLANからのみだが、IE5.5はLANとDSL 1.5Mbpsからが半々といった状況を想定するとどうでしょうか。このようなブラウザ種類ごとのネットワークミックスの設定はシナリオが一つでは設定できません。このような場合にはシナリオをもう一つ作成します。シナリオ1、2を次のように設定して組み合わせると、ここで想定したような利用方法も1つのロードテストとして実行することができます。

表3 シナリオの組み合わせ
  シナリオ1 シナリオ2
テストミックス WebTest1 WebTest1
ブラウザミックス Internet Explorer 6.0 Internet Explorer 5.5
ネットワークミックス LAN LAN[50%], Cable/DSL 1.5Mbps[50%]
ロードパターン 任意 任意

 このようにシナリオまでを組み合わせの1つとして考えることで、さまざまな状況に応じた設定が可能となります。

サーバーカウンタの追加

 実際にやってみるとすぐに分かりますが、カウンタセットの編集でカウンタの追加を行う際、ローカルコンピュータ以外のコンピュータを選択してカウンタの一覧を表示させることができません。これでは、例えばWindows XPの端末でロードテストを作成している場合、Windows Server 2003などサーバーOS特有のパフォーマンスカウンタを追加することができません。ここでその問題を解決する1つの方法を解説します(著者が普段行っている方法でこれが正しい方法なのかは分かりません)。

 まず、実行設定のカウンタセットの割り当てで新しいコンピュータとして、パフォーマンスカウンタ取得対象のコンピュータ名を入力します。ここでカウンタセットを1つも定義しないと設定が消えてしまうので、ダミーでどれか1つ選択しておきます。

図35:サーバーコンピュータの指定
図35:サーバーコンピュータの指定

 次に、カウンタセットのカウンタの編集を行います(図27、図28参照)。図28の画面でコンピュータのドロップダウンを展開すると、先ほど設定したコンピュータ(例ではSVR1)が表示されているのでこれを選択します。現在Visual Studioを実行しているユーザーでSVR1という端末にアクセス可能な場合にはSVR1のパフォーマンスカウンタの一覧が表示されるので、ここから必要なカウンタをカウンタセットとして定義することができます。

 少し面倒な手順ですがこのようにすることでサーバーOS特有のパフォーマンスカウンタもVisual StudioのGUI上から設定することができます。

Webテストのデータバインディングが及ぼす影響

 前回の記事で、SQL ServerなどOLE DB経由で接続可能なデータストアをデータソースとしてWebテストにデータバインディングを行うことができることを解説しました。また、データソースの利用パターンとして次の表4に示す方法があることを解説しました。

表4 データソースの利用方法
設定値 説明
順次(Sequential) 最初のレコードから読み取りを行い、1行ずつ順次読み取ります。
ランダム(Random) テーブル内の行をランダムに読み取ります。
ユニーク(Unique) 最初のレコードから読み取りを行い、1行ずつ順次読み取ります。

 これはWebテストに対して設定しますが、実際にはロードテストが実行されるときに利用されます。順次の場合、データソースの先頭から順番にデータを利用していき、最後尾まで読みきった後はまた先頭から読み込みます。ランダムの場合、データソースにランダムにアクセスしますが、1つのデータソース内のすべてのデータを読みきるまでは同じデータに2回アクセスするということはありません。ユニークは順次に似ていますが、すべてのデータを読みきった後は先頭に戻るということはしないという点が異なります。

 これらはそのときのデータ量や使用が想定されるパターンをもとに”Webテスト”に対して設定をしてください。例えば数値型の主キーが設定されていて、且つ主キーの昇順で並んでいるようなデータの場合、順次よりもユニークの方がより現実的かも知れません。

ロードテスト実行後の注意

 ロードテストが実行されると、その結果は都度ロードテストの結果ストアに指定したSQL Serverデータベースに格納されます。結果がデータベースに格納されているおかげで過去に行ったテスト結果も参照することができますが、1点だけ注意点があります。過去に行ったロードテストの結果を参照するにはその時にデータを格納したデータベースにアクセスできる必要があるという点です。これはロードテストの結果ファイルにロードテスト実行時に結果を格納したデータベースへの接続文字列が格納されているために発生する現象です。この接続文字列を変更できればいいのですが、暗号化されているため、適当な接続文字列に変更することができません。

 Visual Studio 2005ではこの問題を解決するための有効な手段が用意されていないため、テストを行う端末と結果を確認する端末を同一にするなどの運用で回避する必要があります。

まとめ

 VSTTのロードテスト機能を利用したWebアプリケーションのロードテストの作成方法、実行方法、テストのカスタマイズ方法などについて説明してきました。気をつけなければいけない点や注意しておいた方がいい点なども併せて紹介しましたが、それさえ気をつければ非常に強力なツールであると思います。VSTSの強力な連携機能によりWebテスト、ロードテストがシームレスにつながるので、それぞれのテストのために新しいツールの知識を習得したり、一方のテストシナリオが無駄になったりといったことも発生しません。Webアプリケーションの品質、パフォーマンスを強化するためにぜひ一度使ってみてください。

参考資料

  1. Visual Studio 2005 Team System ホームページ
  2. MSDN Library - Visual Studio Team Systemドキュメント

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio 2005 Team Edition for Software Testersを使ってみよう連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2245 2008/08/26 14:05

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング