WebRTC ロードテストの説明



ロードテストは、エンドユーザーに強力なパフォーマンスを保証するために不可欠なウェブおよびソフトウェア開発の一部です。異なる負荷下でのパフォーマンスをテストすることで、ウェブサイトやアプリケーションの貴重な洞察が得られ、改善点の特定が可能になります。WebRTCアプリケーションはリアルタイム通信に依存しているため、パフォーマンステストでは遅延、ジッター、接続の安定性、および同時使用時のメディア品質を考慮する必要があります。

適切なツールと方法を用いてロードテストを実施することは、正確なパフォーマンス分析にとって非常に重要です。オーディオビデオプラットフォーム、ウェビナー、ライブストリーミング、テレヘルス、オンライン教育、コラボレーションツールが成長し続ける中で、リリース前にアプリケーションのパフォーマンスをテストすることはかつてないほど重要になっています。

ロードテストツールに関しては、選択肢が非常に豊富です。このガイドではWebRTCのロードテストと、より現実的なパフォーマンステストのためにLoadViewが音声および映像ストリーミングシナリオをどのようにエミュレートできるかを説明します。

WebRTCとは?

WebRTC(Web Real-Time Communications)は、異なるデバイスやブラウザ間でリアルタイムの音声、映像、テキスト通信を可能にするオープンソース技術です。ビデオ会議、ライブチャット、テレヘルス、オンライン学習、カスタマーサポートなど、リアルタイム通信を必要とする多くのアプリケーションで一般的に使用されています。

WebRTCは、開発者がJavaScriptを使用して安定したピアツーピア(P2P)通信をブラウザやアプリケーション間で確立できるAPIを提供しています。パフォーマンスを正確に測定するためには、帯域幅の変動、パケット損失、デバイスの違い、地理的分布など現実の条件もシミュレーションする必要があります。

WebRTCは互換性、デバイス対応、映像・音声・テキストの伝送など、複雑な通信プロセスを多く処理します。これらをサードパーティのプラグイン、カスタムインターフェース、複雑な統合プロセスを必要とせずに実現するため、ユーザーはブラウザを通じて直接リアルタイム接続を確立しやすくなっています。

WebRTCはどのように機能するのか?

WebRTCはJavaScript、API、HTMLの組み合わせを用いて通信技術をウェブブラウザに埋め込みます。これにより、ブラウザやデバイス間でシームレスな映像、音声、およびテキスト通信が可能になります。Google ChromeやFirefoxなど主要なウェブブラウザで互換性があります。

WebRTCを使用することで、映像、音声、およびテキストデータは複数のデバイス間でアクセス可能になります。これにより、ブラウザを使用してデバイス間でP2P接続を開始・監視でき、複数のデータチャネルで双方向データ送信も可能になります。

P2P通信を利用することで、異なるIPネットワークにいるユーザー間でもリアルタイムで映像、音声、テキストデータの転送が可能です。これは、STUNサーバー(Session Traversal Utilities for NAT)をサポートするネットワークアドレス変換ファイアウォールを使用している異なるネットワークのユーザーも含みます。

STUNサーバーが制限されているネットワークでは、WebRTCはTURNサーバー(Traversal Using Relays around NAT)を使用する場合があります。以下にWebRTCの動作を示すより詳細な図があります:

WebRTC explained

WebRTCを使用するタイミング

WebRTCは、主にウェブブラウザを通じてリアルタイムの映像、音声、テキストデータを使ったP2P通信を確立するために使われますが、他にも多くの利用状況があります。

医療業界はWebRTCが実際に多様な状況で使われる良い例です。WebRTCにより医療モニタリングやバーチャル患者診察が可能になります。また、Google Meet、Zoom、Slackなどのプラットフォームでのビデオ通話、チャット、会議でも一般的に使用されています。

セキュリティ業界でも、WebRTCは監視カメラとブラウザを接続し、それら間の通信を確立するために使われています。オンライン教育、ライブサポート、リモートワーク、リアルタイムメディアストリーミングなどでもWebRTC技術が多用されています。

なぜWebRTCはこれほど人気なのか?

WebRTCが人気な理由はいくつかあります。多くの企業は、ユーザーが別のプラグインをインストールする必要がなく使いやすいため、類似技術よりWebRTCを好みます。WebRTCはブラウザ上でリアルタイム通信をサポートする作業を削減できるため、時間と開発労力の節約につながります。

また、ネットワーク状況に応じて帯域幅の調整が可能であり、異なるウェブおよびモバイルブラウザ間で互換性が高いことも大きな利点です。主要なOSやブラウザで利用可能という点でも優れています。

WebRTCの最大の強みの一つは、無料で使えるオープンソース形式であることです。アクセスしやすく多用途なため、WebRTCはウェブおよびアプリケーション開発者の間で人気の技術となっています。

WebRTCロードテストの課題

WebRTCには限界に直面する領域もあります。多用途で強力ですが、最適なパフォーマンスが発揮されないケースもあります。例えば、WebRTCアプリケーションは安定したリアルタイム接続に依存していることが多く、帯域幅が低い、パケット損失がある、高遅延のネットワークでは接続の確立や維持に問題が生じる可能性があります。現実の使用状況を反映するため、帯域幅制限、パケット損失、遅延、地理的距離など多様なネットワーク条件をシミュレートしてテストすべきです。

また、WebRTCインフラストラクチャのサポートにかかるコストと複雑さも考慮する必要があります。WebRTCはピアツーピア通信をサポートしますが、多くの実アプリケーションはシグナリングサーバー、STUN/TURNサーバー、メディアサーバー、API、バックエンドサービスにも依存しています。これらの支援システムも負荷下でテストし、高負荷時でも映像や音声品質が維持されることを保証する必要があります。

WebRTCによるロードテストおよびモニタリング

ロードテストは、ビデオ会議や通信機能を提供するアプリケーション開発時に非常に重要な工程です。この種のアプリケーションのテストは簡単ではありませんが、高いユーザー数を安定してサポートできることを確保するために必須です。

マニュアルテストは限られたシナリオしかカバーできないため通例として実用的でなく、そのため開発者は通常LoadViewのようなツールを使って通信アプリケーションを適切にテストし、現実的なユーザーアクティビティをシミュレートします。

LoadViewは音声および映像シナリオのテストを容易にする機能を備えています。以下のセクションでは、WebRTCとLoadViewを使ってより正確なロードテストのためにオーディオとビデオストリーミングをどのようにエミュレートできるかを詳細に説明します。

WebRTCを使ったロードテストの仕組み

LoadViewを使うと、ブラウザ内で映像および音声のストリーミングをエミュレートしてテストが可能です。開発者はカメラとマイクのアクセス許可を要求し、ユーザーを模したストリームを作成できます。

これはブラウザ内で事前に録音・録画されたユーザーのオーディオおよびビデオのシーケンスを使用することで実現しています。LoadViewは公開ライブラリを提供していないため、テスト開始前にユーザーがこれらの事前録画ファイルを公共のデータベースにアップロードする必要があります。

事前録画ファイルが公共のデータベースにアップロードされると、LoadViewはURLを介してアクセスし、サーバーにダウンロードします。サーバーに保存後、このファイルを新しいブラウザウィンドウで開き、音声と映像をキャプチャするためのハードウェアをエミュレートします。

以下の事前録音されたオーディオファイルをアップロードしてテストに使用できます:

ビデオテストには、以下の事前録画ファイルをアップロードして使用できます:

自身の事前録音・録画ファイルを使用する場合、最大サポートファイルサイズは20MBです。ビデオファイルはY4M形式、オーディオファイルはWAV形式である必要があります。

テストスクリプトの記録

以下の手順は、LoadViewとWebRTCによるロードテスト用のテストスクリプトを記録する際に使用します。

1. デスクトップ用EveryStep Scripting Toolをダウンロードします。詳しいダウンロードとインストールガイドはこちらをご覧ください。

2. EveryStep Recorderを使用して、好みのビデオ会議アプリケーションを開く記録を作成します。

3. 好みのアプリケーションでメディアストリーミングセッションを開始します。

4. 続行する前にスクリプトを保存します。

5. メディアストリームエミュレーションを実装するために、以下のメソッドをコピー&ペーストします。これらのメソッドはウェブアプリケーションのナビゲーション行の前に追加する必要があります:

tab0.Download (string wavFileName, string wavFileURL);

tab0.Download (string y4mFfileName, string y4mFileURL);

UseFileForFakeMediaCapture (MediaType.Camera, string y4mFileName);

UseFileForFakeMediaCapture (MediaType.Microphone, string wavfileName);

6. メディアストリーミングのための時間を確保するために、以下のディレイ行を追加できます:

// script_version=3.0; everystep_version=4.0.8370.4032; date=4/23/2023; Chrome=104.0.5112.57; Use System Credentials

Tabs.SetSize (1768, 876);

DMBrowser tab0 = null;

7. 仕上げると、以下のようなスクリプトになるはずです:

Step (1, "Webcam Test - Check Your Camera With Our Online Tool - https://www.onlinemictest.com/webcam-test/");

tab0 = Tabs.NewTab ();

//テスト用オーディオファイルのダウンロード

tab0.Download ("30sec.wav", "https://d149yd38g6ldk.cloudfront.net/30sec.wav");

//テスト用ビデオファイルのダウンロード

tab0.Download ("WebCam30s.y4m", "https://d149yd38g6ldk.cloudfront.net/WebCam30s.y4m");

//ウェブカムのビデオストリームとマイク音声をエミュレート

UseFileForFakeMediaCapture (MediaType.Camera, "WebCam30s.y4m");

UseFileForFakeMediaCapture (MediaType.Microphone, "30sec.wav");

tab0.GoTo ("https://www.onlinemictest.com/webcam-test/");

//ウェブカムアクセスを許可するためのボタンクリック

tab0.Div ("//DIV[@ID="webcam-start"]",
"//DIV[@ID="fullscreen_close"]/following-sibling::DIV[1]",
"//DIV[@ID="fullscreen_open"]/following-sibling::DIV[2]").Click ();

Delay ("10sec".ToDuration ());

WebRTCロードテスト – まとめ

ビデオおよび音声会議アプリケーションを適切にテストすることは、安定性と最適なパフォーマンスを保証するために極めて重要です。LoadViewは、音声および映像ストリーミングシナリオをエミュレートし、同時ユーザーの挙動をシミュレートできるため、この種のアプリケーションのテストに役立ちます。

WebRTCとLoadViewの力を活用して、アプリケーションの能力を向上させましょう。LoadViewがどのようにビデオおよび音声通信アプリケーションのテストを支援し、ユーザーに性能問題が届く前に対処できるかをご覧ください。無料のLoadViewデモを今すぐリクエストして、リリース前の自信を高めましょう。

ロードテストを
次のレベルへ

無限のスケーラビリティで比類のない機能を体験してください。クレジットカード不要、契約不要。