ヘッダーをスキップ

Oracle® Load Testing Load Testingユーザーズ・ガイド バージョン9.20 B62626-01 |
| 目次 | 索引

戻る | 次へ |

# 1 概要

インターネットには、新しいWebアプリケーションを何千というユーザーに瞬時に提供できるという利点があります。同時にそれは、様々な課題を生み出しているという側面もあります。Fortune 1000企業は、ビジネス・クリティカルな商業およびエンタープライズ・アプリケーションにおけるWebテクノロジの活用を急速に拡大しています。ITマネージャが企業用の新規インターネットおよびイントラネット・アプリケーションを開発する際に最も注意を払うのがスケーラビリティの問題です。選択可能なテクノロジやプラットフォームが無数にあるため、多くの開発者の最大の関心事がアプリケーションのスケーラビリティであるというのは当然のことと言えます。

活用するテクノロジのほとんどが新しいものであるため、どのようなWebプロジェクトにおいても、実際の状況でアプリケーションが適切に動作するかどうかには大きなリスクが伴います。リスクを緩和する唯一の方法は、アプリケーションが実際にライブ状態になる前に何百または何千という同時ユーザーが存在する場合の負荷をエミュレートすることです。

## 1.1 Oracle Load Testingについて

Oracle Load Testingを使用すると、E-CommerceおよびE-Businessアプリケーションのスケーラビリティを最も簡単かつ正確な方法でテストすることができます。Oracle Load Testingではサイトに同時アクセスする何千という単位の仮想ユーザーをエミュレートし、アプリケーション・パフォーマンスに対する負荷の影響を計測します。

TrueLoadテクノロジの使用により、テストで実際の状況に近いユーザー負荷をエミュレートできるので、システム・アーキテクチャ、調整およびホスティング代案などに関する重要な決断の材料にOracle Load Testingでのテスト結果を安心して加えていただくことができます。

Oracle Load TestingはOracle Application Testing Suiteの負荷およびスケーラビリティをテストするコンポーネントです。Oracle Load Testingにはプログラミングの必要はなく、直感的なグラフィカル・ユーザー・インタフェースおよびスクリプトを使用して操作できます。Oracle Load Testingでは、検証機能がビルトインされたOracle OpenScriptで作成済のスクリプトを使用して、負荷テストの仮想ユーザーをエミュレートします。

## 1.2 機能の特長

Oracle Load Testingには、Webベース・アプリケーションの負荷テストについて次のような利点があります。

- 実際のユーザー・インタフェースを正確にエミュレートし、正確なレスポンスをテストします。

- プログラミングが不要であり、機能テストや再帰テストのスクリプトは変更せずに再利用できます。

- 負荷条件を簡単に変更できるため、条件によってどう変わるか様々なシナリオを試したり、ボタンをクリックするだけで総括的なレポートやグラフを作成できます。

- Oracle Load Testingには、Webブラウザを使用してネットワーク上のどのマシンからもアクセスできます。

- 同じ進捗テストのセッションに接続して結果を表示および分析し、複数のユーザーがテスト中に協力できます。

### 1.2.1 従来の負荷テスト・ツールの問題点

現在、Webベースのほとんどの負荷テスト・ツールは単純なHTTPレコーダであり、クライアント・ブラウザとWebサーバーの間で低レベルのトラフィックを記録して、記録の多くのコピーを同時に再生するものです。問題は、ほとんどのWebアプリケーションが動的である、つまりWebページはセッションIDや動的コンテンツを反映するためにリクエストのたびに少しずつ変化するということです。したがって、今作成した記録が、5分後には役に立たなくなります。

しかも、サーバーが正しくレスポンスを返しているかどうかを知ることは非常に難しくなります。たとえば、サーバーは「サーバー・ビジー」のメッセージを多くのユーザーに送信していても、負荷テスト・ツールではその差を認識できません。

## 1.3 Oracle Load Testingの利点

Oracle Load Testingには、次に示すように、Webベース・アプリケーション用の従来の負荷テスト・ツールと比較して多くの利点があります。

- TrueLoadテクノロジ

- 既存のスクリプトの再利用

- ユーザー定義の仮想ユーザー・プロファイル

- 分散エージェントを使用する単一の制御点

- データ駆動型負荷テスティング

- リアルタイムのレポートおよびグラフ

- リアルタイムのサーバー側統計の監視

- 一般的なIDEに最適化

- Webベースのアクセス

- 共同テスト作業

### 1.3.1 TrueLoadテクノロジ

Oracle Load Testingは、実際のWebブラウザを使用する実際のWebユーザーからのトラフィックを正確にエミュレートできる、革新的なTrueLoadテクノロジを利用しています。TrueLoadには、次のような独自のテクノロジが採用されています。

オブジェクト指向の記録: HTTPベースのツールとは異なり、Oracle Load TestingはWebブラウザがページをレンダリングするときに使用される実際のオブジェクトを記録します。これらのオブジェクトは、Oracle Load Testingのスクリプトでグラフィカルに表されます。負荷テストに使用するスクリプトは、HTTPレコーダでキャプチャされる内容より詳細度が高く、理解するのも、保守やデバッグにも簡単です。テスト対象のアプリケーションが開発サイクルを経て変化するのに応じて、スクリプトを増分的に更新するのも容易です。

自動のレスポンス検証: Oracle Load Testingは、サーバーから返される各ページの精度を自動的にチェックします。スクリプトで定義されている内容にページが一致した場合、テストはエラーなしで続行されます。記録されたベースライン・スクリプトに一致しないページが返された場合、エラーのフラグが設定されます。

同時オブジェクト・リクエスト: IEやNetscapeと同様、Oracle Load Testingの仮想ユーザーもオペレーティング・システムのマルチスレッド機能を利用してサーバーに同時リクエストを行います。つまり、1つのスレッドでページを取得し、別のスレッドでイメージを取得するような処理です。そのため、バックエンド・サーバーで生成されるヒットの強度は、実際のブラウザとまったく同じになります。

自動セッション管理: Oracle Load Testingは、Microsoft ASP/ASP.NET、Weblogic、WebSphere、NetDynamics、ColdFusion、WebObjectsなど一般的な開発環境のセッション変数を自動的に認識して処理します。

Oracle Load Testingが採用しているTrueLoadテクノロジによって、最も精度の高い負荷シミュレーションが実現し、実世界の利用状況ときわめて相関性の高い結果が得られます。

### 1.3.2 既存のスクリプトの再利用

Oracle Load Testingは、数百から数千もの仮想ユーザーをエミュレートするとき、Oracle OpenScriptによる機能テストのために作成された同じスクリプトを使用します。Oracle Load Testingの「シナリオの設定」タブでは、事前に記録されたスクリプトの名前をポイント・アンド・クリックし、実行するタイプごとの仮想ユーザーの数を指定するだけで、カスタムの負荷シナリオをいくつでも定義できます。

ユーザー数および種類を実行中に簡単に変更できるので、負荷条件やアプリケーションの設定が変化した場合のシナリオを試してみることができます。実行中の任意の仮想ユーザーを展開して、その仮想ユーザーがアクセスしている実際のページを参照し、デバッグに役立てることができます。

### 1.3.3 ユーザー定義の仮想ユーザー・プロファイル

Oracle Load Testingでは、複数のスクリプトを1つの仮想ユーザーのプロファイルとして組み合せることも可能です。プロファイル内では、プロローグ、実行、エピローグ、およびエラー・スクリプトとして使用するスクリプトを指定できます。

ユーザー定義のプロファイルには、現実的なマルチユーザー状況を作成する同期ポイントも含めることができます。

### 1.3.4 分散エージェントを使用する単一の制御点

仮想ユーザーは、単一のサーバーでも、あるいはLANやWAN上の任意の場所にある複数のサーバー間での分散環境でもシミュレーションが可能です。Oracle Load Testingのコントローラが、分散クライアント・ステーション上の仮想ユーザー・エージェントを単一の場所から実行します。

「シナリオの設定」および「オートパイロットの設定」タブを使用すると、記録済のスクリプトの名前をポイントおよびクリックするだけで、必要な数のカスタム負荷シナリオを定義できます。Oracle Load Testingのシナリオでは、エージェントごとに実行する仮想スクリプトと実行システムを定義し、実行する種類別の仮想ユーザー数および仮想ユーザーの増加方法を指定します。

### 1.3.5 データ駆動型負荷テスティング

Oracle Load Testingはデータ駆動テスティングにも簡単に対応し、多くの異なるユーザーが異なるデータベース・レコードに同時にアクセスするという現実的なシナリオをエミュレートすることができます。Oracle OpenScriptのデータバンク・ウィザードを使用すれば、記録された1つのスクリプトを、仮想ユーザーごとにデータ設定を変更して何度でも再利用できます。たとえば、仮想ユーザーごとにユーザー名、パスワード、勘定残高などを変更できます。データは、外部データバンクから自動的に読み込まれ、各仮想ユーザーに配置されます。

### 1.3.6 総合的なレポートおよびグラフ

Oracle Load Testingのグラフ化機能を利用すれば、Oracle Load Testingのテスト結果をリアルタイムで確認できます。パフォーマンス・データは、プロファイル、スクリプト、ページ・グループ、個々のページ、ページ上のオブジェクトなど様々なレベルで累積されます。グラフとレポートにはレスポンス時間、エラー率、ユーザー数のほか、1秒当たりのヒット数や1秒当たりのページ数などの統計が含まれています。

また、Oracle Load Testingにはグラフとレポートの包括的なセットを利用する実行後分析の機能もあります。Microsoft Excelなどの外部プログラムにデータをエクスポートし、さらに分析に利用することも可能です。

### 1.3.7 リアルタイムのサーバー側統計の監視

Oracle Load Testing ServerStatsにはサーバー統計の監視機能があり、様々なサーバー側アプリケーション、データベース、システム、およびWebサーバー統計を監視できます。Oracle Load Testing ServerStatsの設定により、サーバーから利用可能な様々なホストおよびサービスのリアルタイム・パフォーマンス統計（CPU使用率、メモリー使用率、Webサーバー統計など）を表示することができます。

負荷テストの実行中には、特定のカウンタをリアルタイムで監視することも可能です。サーバー統計は、Oracle Load Testingのデータベースに保存して後で分析に利用できます。

### 1.3.8 一般的なIDEに最適化

Oracle Load Testingは、NetDynamics、WebObjects、Cold Fusion、Microsoft ASP/ASP.NET、Weblogic、WebSphereなど多くの一般的なWeb開発環境に対応して最適化されています。これらのツールは可変のセッションIDとSSLを使用するため、それが他の負荷ツールでは問題となっています。Oracle Load Testingは、このような環境機能を自動的に処理します。

### 1.3.9 開発から運用までのテスト

負荷テストおよびパフォーマンス・テストは、運用前に1度だけ実行するものではありません。これらのテストは、Webアプリケーションの設計、構築および保守の各プロセスにおいて不可欠なものである必要があります。負荷テスティングによって、開発の初期段階ではシステム・アーキテクチャを検証し、開発期間中にはアプリケーションのボトルネックおよびベンチマークを明確にし、運用前には最適なパフォーマンスが得られるようアプリケーションを調節します。アプリケーションおよびシステム・インフラストラクチャを繰り返し修正している間は、開発されたパフォーマンス・ベンチマーク・テストを何回も実行して、パフォーマンスに悪い影響が出ていないことを確認する必要があります。

アプリケーションの運用後にも、アプリケーションのパフォーマンスを継続的に監視して、ユーザー側で問題が発生する前に、処理速度およびパフォーマンスの低下を認識できる体制にあることが必要です。

Oracle Load TestingはOracle Application Testing Suiteに含まれるコンポーネントの1つであり、E-Businessアプリケーションをテストする統合ソリューションです。反復および測定が可能な結果を提供することで、ソフトウェアの迅速な品質改良を実現するように設計されているOracle Application Testing Suiteを使用して、Webアプリケーションの高速な開発サイクルに対応することが可能になります。

完全に統合されているOracle Application Testing Suiteは、1つのテスト資産を開発から運用まで活用する最初のWebテスト・ソリューションです。アプリケーションのライフ・サイクルを通じてテストの一貫性を維持し、Webアプリケーションのテスト自動化コストを最大限に還元します。