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 ポスト
  • このエントリーをはてなブックマークに追加

ロードテストの中身を見てみよう

 さて、ここまででロードテストを作成して実行する一番単純な方法についてご理解いただけたのではないかと思います。しかし、より実際に近いロードテストを実行するためには、さまざまな設定を行わなければいけません。

  ここでは、先ほどまでに作成したロードテストを元に、VSTTのロードテストがどのように構成されているかを見ていきたいと思います。まずはもう一度図12を見てみてください。大きくシナリオ、カウンタセット、実行設定の3つで構成されています。ではこの3つについて詳しく見ていきたいと思います。

シナリオ

 シナリオはユーザーがどのような形でアプリケーションを利用するかを定義するためのものです。アプリケーションにさまざまな機能が含まれる場合にはどの機能がどのくらいの割合で使われるのか、例えば企業内アプリケーションであれば、利用者が全員LAN回線でInternet Explorer 6.0を利用してアクセスするだろうといったことを設定します。これらがテストミックス、ブラウザミックス、ネットワークミックスとして設定されているものです。また利用者数などを想定するロードパターン(図12ではステップロードパターン)もあります。

テストミックス

 テストミックスではアプリケーションの使われ方とその割合を定義します。アプリケーションの使われ方を定義するためにはWebテスト機能で作成したWebテストを利用します。Webテスト1つ1つがアプリケーションの個々の機能を利用するための方法で、これらを複数読み込み、各Webテストの割合を決めることでアプリケーションの使われ方を定義します。次の図22はWebテストを二つ読み込み、3:1の割合でそれぞれのWebテストが実行されるように構成した画面です。

図22:テストミックスの編集
図22:テストミックスの編集

 このようにWebテストを活用してロードテストを作成することができますので、Webテスト機能でアプリケーションの簡単な機能テストを行い、そのテストを使ってパフォーマンステストを行うということも簡単に実行できます。

ブラウザミックス

 ブラウザミックスはユーザーが利用するブラウザの割合を設定するものです。標準では図8に示す一覧が設定可能なブラウザとして用意されています。インターネット向けアプリケーションや企業内でもInternet Explorer 5.0以上などを想定している場合にその割合を想定して定義することができます。次の図23はIE6.0, IE5.5, Netscape6.0がそれぞれ6:3:1の割合で利用されることを想定して設定している画面です。

図23:ブラウザミックスの編集
図23:ブラウザミックスの編集

 このブラウザの種類ですが、ブラウザがWebサーバーにリクエストを出す際のHTTPヘッダーを定義している非常にシンプルなものです。このため、例えばIE7など新しいブラウザも簡単に定義することができます。定義ファイルはVisual Studioを既定でインストールしている場合には「C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Templates\LoadTest\Browsers」に定義されています。ここにあるファイルを参考に新しい「.browser」ファイルを作成することで新しいブラウザの種類を定義することができます。

ネットワークミックス

 ネットワークミックスはユーザーが利用するネットワーク回線の割合を設定するものです。標準では図9に示す一覧が設定可能なネットワークとして用意されています。次の図24はLAN、ADSLの1.5Mbps、56kダイアルアップが55:40:5の割合で利用されることを想定して設定している画面です。

図24:ネットワークミックスの編集
図24:ネットワークミックスの編集

 「Cable/DSL 1.5Mbps」の1.5Mbpsのように各ネットワークの種類には帯域幅が定義されており、アプリケーションへのアクセス時に自動的にその帯域幅に絞った状態で接続が試行されます。このネットワークミックスもブラウザミックス同様任意のものを追加することが可能で、定義ファイルは「C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Templates\LoadTest\Networks」内にあります。必要な場合にはここにあるファイルを参考に新しい「.network」ファイルを作成してください。

ロードパターン

 ロードパターンはロードテスト実行中にどのように負荷をかけていくかを設定するものです。ロードパターンは次の表1に示す3つが用意されています。

表1 ロードテストの種類
種類 説明
持続 常に一定のユーザーが利用している状態にするパターンです。
ステップ 指定間隔ごとに利用ユーザー数を増加させていくパターンです。10ユーザーから初め、5秒ごとに10ユーザーずつ、200ユーザーまで増加させるといった設定が可能です。
ゴール志向 パフォーマンスカウンタのしきい値をもとにユーザー数を決定させるパターンです。CPU利用率を60~90%の間で保ち、そのためにユーザー数を1~300の間で上限させるなどの設定が可能です。

 一般的な負荷テストに利用する場合にはステップロードパターンを利用しますが、継続的な利用に対しての状態を知りたい場合やサーバーの特定の状態に応じた状況を知りたい場合には持続やゴール志向のロードパターンが役に立ちます。

カウンタセット

 カウンタセットはロードテストの実行時に収集するパフォーマンスカウンタの一覧です。カウンタセットは標準では図25に示すように「LoadTest」「Controller」「Agent」の3つが定義されています。

図25:カウンタセットの定義
図25:カウンタセットの定義

 またそれぞれのカウンタセットの中にはカウンタカテゴリとそこに含まれるパフォーマンスカウンタが定義されています。この例では、「Controller」というカウンタセットの中に「Memory」や「Processor」などのカウンタカテゴリがあり、「Processor」のカウンタカテゴリとして「% Processor Time」というカウンタが定義されています。このカウンタカテゴリおよびカウンタはWindowsのパフォーマンス管理ツール内のパフォーマンスオブジェクト、カウンタと対応しています。それぞれのカウンタの意味などが知りたい場合などはパフォーマンス管理ツールのヘルプなどを参考にしてみてください。

カウンタセットの編集

 ロードテスト実行時にどの端末からどういったパフォーマンスカウンタの値を取得するかの設定方法は後述の実行設定の部分で説明を加えますが、設定の際に「カウンタセットの単位で設定する」という注意点があるので覚えておいてください。つまり「% Processor Time」など個別のカウンタごとには設定することができないということです。パフォーマンスカウンタからあらかじめ取得しておきたいものを決定しておく必要があります。

 取得したいパフォーマンスカウンタのセットをカスタマイズしたい場合には独自にカウンタセットを追加することもできます(既存のカウンタセットを編集することもできますが標準のものはそのまま残しておくことをお奨めします)。この場合は「カウンタセット」フォルダを右クリックし、[カスタムカウンタセットの追加]を選択します。

図26:カウンタセットの追加
図26:カウンタセットの追加

 カスタムカウンタセットを追加したら今度はそこにカウンタを定義していきます。先ほど追加したカスタムカウンタセットを右クリックし、[カウンタの追加]を選択します。

図27:カウンタの追加
図27:カウンタの追加

 Windowsのパフォーマンス管理ツールをご存知の場合には、似たような見慣れた画面が表示されますので、この画面で任意のカウンタを選択して追加していきます。

図28:パフォーマンスカウンタの選択
図28:パフォーマンスカウンタの選択

 カウンタを削除したい場合には、削除対象のカウンタを選択して右クリックし、[削除]を選べばカウンタセットから削除することができます。カウンタカテゴリ内に含まれるすべてのカウンタが削除されると、カウンタカテゴリも自動的に削除されます。

図29:カウンタの削除
図29:カウンタの削除

しきい値規則の設定

 カウンタセットに対してカウンタの追加や削除を行い、ロードテストに必要なパフォーマンスカウンタの定義をすることができますが、カウンタにはもう一つ設定を行った方がいいものがあります。それがしきい値規則と呼ばれるものです。しきい値規則は任意のカウンタに設定することができ、パフォーマンスカウンタが示す値に基づき、警告やエラーを表示させることができます。例えば、標準カウンタセットの「Agent - Processor - % Processor Time」を見てみると「定数の比較」というしきい値規則が定義されていることが確認できます。

図30:しきい値規則の設定
図30:しきい値規則の設定

 この例では、CPU使用率が90%を超えたところで警告があがり、95%を超えたところでエラーになるという設定がされています。CPU利用率やメモリ使用量などアプリケーションのテスト中に越えてはいけないパフォーマンスカウンタの値が決められている場合には、この規則を活用して設定してください。

実行設定

 実行設定はロードテストの実行方法を決めるための重要な部分です。ここでは大きく分けて、実行そのものにかかわる設定と、実行中に取得するパフォーマンスカウンタの設定の二つを行います。

カウンタセットの割り当て

 先ほどのカウンタセットのところで説明していた内容のカウンタセットの編集とは少し違う内容です。名前が非常に似ていて混乱しやすい個所でもありますので先ほどの内容と併せて、どこで何を設定しているのかを押えてみてください。

 ここでは、どの端末でどのカウンタセットを利用してパフォーマンスカウンタの値を取得するのかを設定します。実行設定内のカウンタセットの割り当てを右クリックし、[カウンタセットの管理]を選択します(実はカウンタセットのコンテキストメニューからも同じものが表示されます。図26などを参照。この辺がさらに混乱の原因かもしれません)。

図31:カウンタセットの管理の実行
図31:カウンタセットの管理の実行

 表示された「カウンタセットの管理」ウィンドウでは、コンピュータの追加とカウンタセットの割り当てを行います。[コンピュータの追加]ボタンを押すと新しいコンピュータが追加されるので、パフォーマンスカウンタ取得対象のPC名を設定してください。ここではPC名称の妥当性チェックは行われませんが、ロードテストの実行時にはこのPC名称が利用されるのでその点に注意して設定してください。次の図32は「LIBATY」というPCに「カスタム1」というカウンタセットを割り当てている例です。

図32:カウンタセットの管理
図32:カウンタセットの管理

ロードテストの設定

 ロードテストの設定(=実行設定のプロパティ)では、ロードテストの実行時間などを設定します。実行設定フォルダ内にある実行設定を選択するとVisual Studioのプロパティウィンドウに内容が表示されるので、ここから各種設定を行います。

図33:実行設定のプロパティ
図33:実行設定のプロパティ

 特に重要なのはタイミングのカテゴリとしてあるもので、テストの実行時間の設定を行います。サンプル速度はパフォーマンスカウンタの値を取得する間隔の設定を行うものなので、あまり早くしすぎて負荷をかけすぎたりあまり遅くしすぎて必要なデータが集まらなかったりといったことがないように調整してください。

 次に重要なのが全般カテゴリの検証レベルです。前回の記事でWebテストの検証規則について解説しました。検証レベルの詳細は本稿に譲るとしていたので、ここで解説しておきたいと思います。ここでは、Low、Medium、Highの3種類の設定ができます。Webテストの検証規則でも同様の設定ができ、この組み合わせによってロードテスト中に実施される検証規則の設定を行います。具体的には次の表2の通りとなりますので参考にしてみてください(縦軸はWebテストでの設定、横軸はロードテストでの設定です)。

表2 検証レベルの組み合わせ(縦軸:Webテスト/横軸:ロードテスト)
Webテストの検証レベル Low Medium High
Low 実行する 実行する 実行する
Medium 実行しない 実行する 実行する
High 実行しない 実行しない 実行する

 なお、実行設定は複数定義しておくこともできます。作成後の実行確認テスト用に実行時間や検証レベルの低いものを用意しておき、本番用に別に用意しておくといったことが可能です。複数用意した実行設定はロードテストのプロパティで設定可能です。ロードテストのプロパティを確認すると「アクティブな実行設定」というものが用意されているので、ここで実行設定を切り替えることでテスト用、本番用の切り替えといったことが可能です。

図34:実行設定の切り替え
図34:実行設定の切り替え

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

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング