パフォーマンス テストは、さまざまな負荷レベルに対してテストされた場合に ウェブ アプリケーション、ウェブ ページ、またはフレームワークがどのように応答するかを測定し、一定期間負荷がかかっているときに動作し、応答する方法を確認する非機能テストの一種です。 この記事では、Selenium とそのツール ファミリを使用してパフォーマンス テストを実行する方法について説明します。 ロード テストを実行するためにセレンと WebDriver だけを使用することは推奨されませんが、この記事では、LoadView のようなソリューションの利点をカバーするだけでなく、セレンでロード テストを設定するプロセスについて説明します。
セレンウェブドライバーとは何ですか?
Selenium WebDriver は、フォームに真の記入を確認する ウェブ アプリケーションのテストを自動化するために利用されます。 Firefox、Chrome、インターネットエクスプローラ、サファリなど、数多くのブラウザをサポートしています。 いずれにしても、WebDriverを利用して、ウェブ アプリケーションのテストを自動化することができます。 Windows ベースのアプリケーションの請求書には適合しません。 同様に、テスト内容を作成するためのC#、Java、Perl、PHP、Rubyなど、多様なプログラミング方言を強化します。 同様のコードは、Windows、iOS、Linux、Ubuntuなどの様々なオペレーティングシステムで利用することができるので、Selenium WebDriverはステージフリーです。 セレンのIDE、セレンクライアントAPI、セレンリモートコントロール、セレングリッドを追加組み込んだセレンファミリーのセグメントの一つです。
セレン WebDriver は Windows を扱いませんが、この制約は、AutoIT、Sikuli などのサードパーティ製の機器を使用することで圧倒される可能性があります。 ID、名前、リンクテキスト、部分接続テキスト、クラス名、CSSセレクタ、Xpathなど、さまざまな領域手順もあります。 同様に、ページ自体が再読み込みされることなくページのコンポーネントが変更される可能性がある AJAX のような動的なページのサポートも向上しています。 多様なコンテナ文書を活用することで、同様に、ApiやデータベースなどをセレンWebDriverを利用してテストすることができます。
セレン ウェブドライバー アーキテクチャ
セレン ウェブ ドライバー API は、言語とブラウザー間の通信機能を提供します。 付随する写真は、セレンウェブドライバーの構成描写を示しています。
WebDriver アーキテクチャには、次の 4 つの基本的な要素があります。
- セレン言語結合
- JSON ワイヤー プロトコル
- プログラムドライバ
- 本物のブラウザ
セレン言語結合
Selenium ロードテスターは、多くの方言を助けるために言語バインディング/セレン クライアント ライブラリを作りました。 たとえば、Javaでプログラムドライバを利用する必要が生じ、Javaビルドを利用する必要が生じ、その場合はJavaビルドを利用します。 すべての支持された言語の結合は 、公式のSeleniumサイトからダウンロードすることができます. セレンクライアントの量は、いくつかの時間後に根本的に開発されています. 多くのクライアントは、多数の改善スタックを支持することを意味し、ネットワークドキュメントは、バインディングによって共有される主要な有用性としてWebDriver APIを利用して、様々な方言でSeleniumを利用します。
JSON ワイヤー プロトコル
JSON (JavaScript オブジェクト表記法) は、ウェブ上の情報を取引するためのオープンな規範です。 記事や展示などの情報構造を支えています。 このように、JSON からの情報の作成や利用は難しいという以外の方法です。 JSON ワイヤープロトコルは、クライアントとサーバー間で情報を移動するための車両コンポーネントを提供します。 JSON ワイヤープロトコルは、異なる REST ウェブ 管理の業界標準として提供されます。
プログラムドライバ
Seleniumは、プログラムの有用性の内部の根拠を明らかにすることなく、プログラムとの保護された関連付けを構築するように、すべてのプログラムに明示的なドライバを利用しています。 プログラム ドライバも同様に、Java や C# など、オートメーションに使用される言語に対して明示的に指定されています。 WebDriverを利用してテストコンテンツを実行する時点で、付随するアクティビティは内部で実行されます。
- HTTP 要求が作成され、すべての Selenium オーダーのプログラム ドライバーに送信されます。
- ドライバーは HTTP ワーカーを介して HTTP 要求を取得します。
- HTTPサーバーは、プログラム上で実行されるガイドラインを実行するすべての手段を選択します。
- 実行ステータスは HTTP サーバに送り返され、自動コンテンツに送り返されます。
本物のブラウザ
Selenium WebDriver でサポートされているブラウザーには、次のものがあります。
- インターネットエクスプローラ
- モジラファイアフォックス
- グーグルクローム
- サファリ
セレンウェブドライバの特徴
異なるブラウザサポート
Selenium WebDriver は、インターネットブラウザーの様々な範囲を支持します, 例えば, Firefox, クロム, インターネットエクスプローラ, オペラといくつかのより. 同様に、HTMLUnit のような非正規または一般的でないプログラムの一部を支えています。 HTMLUnit はヘッドレス ブラウザ、または GUI (グラフィカル ユーザ インターフェイス) を使用しないブラウザです。 多くのオープンソースのロードテストソリューションでは、ヘッドレスブラウザが使用されています。 しかし、ヘッドレスブラウザではクライアント側のスクリプトをテストできないので、ユーザーの視点から見ると実際のパフォーマンスが損なわれるという問題があります。
プロトコルベースのテストと実際のブラウザベースのテスト
プロトコルベースのテストは、インターネットの初期の時期に非常に人気がありました。 しかし、時間が経つにつれて、ウェブ アプリケーションのフレームワークとブラウザが進化し、かつて人気のあるロードテスト方法はますます時代遅れになっています。 HTTP テストは現在でも使用されていますが、ウェブ サイトが複雑になるにつれてロード テストが困難になります。
現代の ウェブ アプリケーションは、ナビゲーションや検索などのサーバーではなく、クライアント側の動作とアクションに依存しています。 たとえば、ページが読み込まれると、シングル ページ アプリケーション (SPA) はサーバーからの関与にほとんど依存しません。 サーバー側から動的に読み込まれたコンテンツがいくつかあるかもしれませんが、ユーザーの観点から見ると、新しいページを継続的に読み込むことなく、よりシームレスなエクスペリエンスを提供します。
様々な言語サポート
WebDriver は、Java、C#、JavaScript、PHP、ルビー、パール、および Python のような一般的に利用されるプログラミング方言の大部分を強化します。 その後、クライアントは、そのコンピテンシーに依存する、任意のサポートされているプログラミング言語を選択し、テストコンテンツの構築を開始できます。
速度
WebDriverは、セレンスイートの異なる装置と対比すると、より速く実行されます。 プログラムと話す道路労働者の中に必要はありません。むしろ、デバイスはプログラムと簡単に話します。
基本的なコマンド
セレン WebDriver で利用される注文のほとんどは、実現が困難な以外の何物でありません。 たとえば、次の注文が使用されているWebDriverでプログラムをディスパッチするには:
- ウェブドライバードライバー = 新しい Firefox ドライバー();(ファイアフォックスプログラム)
- ウェブドライバードライバー=新しいクロームドライバー();(クロームプログラム)
- Webドライバードライバー = 新しいインターネットエクスプローラドライバー();(インターネットエクスプローラプログラム)
メソッドとクラス
WebDriver は、オートメーション テストで考えられるいくつかの困難に適応するためのさまざまな回答を提供します。 WebDriver は、さらに、アナライザーが、チェック ボックス、ドロップダウン、警告などの複雑な ウェブ コンポーネントのすべての種類を管理することを許可します。
セレンを用いたロードテスト
セレン ウェブ ドライバーを使用してロード テストに関しては、いくつかの手順があります。
ブラウザ構成の作成
スレッドグループを作成し、構成要素メニューから「Chromeドライバ設定」を含めます。
その時点で、あなたはあなたの構成要素への方法としてダウンロードしたChromeDriverを与える必要があります。
テストの実装
スレッド グループの下に WebDriver サンプラーを含めます。 これにより、基本的なコンテンツが表示され、サイト ページが開きます。 私たちは、このコンテンツを制御する必要があります。 プログラムと協力するためには 、SendKeys 、click()などのセレンの明示的なテクニックを利用する必要があります。 ここにいくつかのヒントがあります:
開いているコマンドの参照
このコマンドは、指定された URL を開きます
UI を明示的に指定するアクティビティを実行するには、org.openqa.selenium バンドルをコンテンツにインポートする必要があります。 この行をコンテンツに追加するだけです。
キーの送信コマンド
あなたがSeleniumについて知っている場合、あなたは、あなたがウェブ コンポーネントを発見することを奨励し、私たちが作ったpkg変数にcssSelector、ID、XPathなどを使用してコンポーネントに到達できることを認識しています。 これがコンポーネントを検出する方法です。 ウェブ 要素を格納する変数を呼び出すフィールドを検索します。
その時点で、標準的なセレンの仕事 SendKeys を利用して、いくつかのコンテンツを考えるだけです。
コマンドをクリックします。
セレンは、基礎となるスナップ順序を持っています。 webElementを取得した後に、同様の容量を利用するだけです。 まず、コンポーネントを保存し、スナップアクティビティを再生します。
その他のコマンド
これらの重要な注文以外に、セレンのために明示的に意図されたいくつかの注文を利用する必要がありますので、Seleniumはサンプラーの開始時刻と終了時間をキャッチするオプションがあります。 これらの2つの技術は、Seleniumに最初と最後の信号を送信し、目的を明らかにする。
ログ コマンド
テスト中にログを記録する必要があります。 その時点で、単に下の順序を利用します。 また、ロード テストの結果を表示することもできます。
リクエストの種類
GET と POST の 2 種類の勧誘が行われます。
GET要求の可能性が高い場合、その時点でプログラムの最後に作成される反応が起こされ、HTTP経由でプログラムドライバに送信され、長期的には、JSONワイヤー規約の助けを借りてプログラムドライバがUI(Eclipse IDE)に送信します。
セレンウェブドライバーの利点
- これは、より人気のあるオープンソースプログラムの1つであり、オンラインアプリケーションをテストするためには、まずは難しいものです。 さらに、プログラム間の類似性テストを実行できます。
- Windows、Mac、Linux、Unixなどのさまざまな作業フレームワークをサポートしています。
- これは、類似性に、Python、Java、Perl、Rubyなどの方言の範囲を与えます。
- クロム、Firefox、オペラ、サファリ、インターネットエクスプローラなどの現在のプログラムのヘルプを提供しています。
- セレン WebDriver は、異なる機器と対比したときにテストコンテンツの実行を迅速に終了します。
- その点で、そのポイントで、より簡潔なAPI(アプリケーションプログラミングインタフェース)セレンRC’
- それはさらに類似性iPhoneドライバ、Htmlユニットドライバとアンドロイドドライバを与えます
セレンの困難
セレンの問題は次のとおりです。
- ウェブ アプリケーションのテストのみをサポート
- ビットマップ検査を受け入れません。
- 関連する機能を詳述する場合は、サードパーティのツールに頼るホストをホストします。
- HP UFTのようなビジネスデバイスと対比する装置のベンダーサポートはありません
- ORC(光学式文字認識)がないので、アイテムの実用性が面倒になる
LoadView: 実際のブラウザでのロード&ストレス テスト
LoadView を使用すると、開発者やテスト担当者は、ウェブ アプリケーション、ウェブ ページ、API、ストリーミング メディアなど、多数の項目に対して負荷テストやストレス テストをすばやく作成できます。 すべてのリソースが管理されます。 ソリューションは完全にウェブベースであり、ロードインジェクタサーバーがすべて管理されるため、追加のハードウェアやソフトウェアは必要ありません。
ウェブ アプリケーションの場合、ユーザーは、ユーザーまたはクライアントと同じように 、EveryStep Web Recorder を使用して、アプリケーションをポイントして、アプリケーションをクリックできます。 これらのスクリプトは LoadView プラットフォームにアップロードされ、数回のクリックでロード テスト シナリオを作成し、テストを実行できます。 ウェブ アプリケーションのシナリオを手動でスクリプト化する時間を無駄にしないでください。 LoadView の機能の詳細については、こちらをご覧ください。
ロードビューの利点
これらは、LoadViewの大きな利点のほんの一部です:
- 使いやすいです。 わかりやすいユーザー インターフェイスを備えています。
- 簡単かつ迅速なスクリプト記録のためのEveryStep Webレコーダーが含まれています
- ジェンキンスなどの継続的インテグレーションツールと統合
- 多くのテクノロジー、フレームワーク、ブラウザ、デバイスをサポート
- 約20のグローバル拠点からのテスト
- プロトコルレベルでテストできるだけでなく、実際のブラウザを使用して
ロードビューとセレンの基本的な違い
ビューを読み込む |
セレン |
ロードビューはウェブベースのソリューションです | セレンは有形プログラミングライブラリであり、装置ではありません |
LoadView は、クロスブラウザー テストの拡張サポートを必要としません。 | Selenium は、クロスブラウザテスト用の幅広いブラウザをサポートしています |
LoadViewは、すべてをスケールし、ユーザーは負荷テストのグラフィカルビューを見ることができます | セレンはうまくスケーリングしない |
LoadViewは簡単なトラブルシューティングのためのビデオをキャプチャすることができます | セレン ウェブ ドライバーは、ビデオをキャプチャし、トラブルシューティングできません。 |
セレン テスト スイートは、TestNG XML スイートで構成できます。 名前が提案するように、実行されるセレンテストスイート全体/シチュエーションを描写したXMLドキュメントです。 後続のレコードはテスト コンピューター間で共有でき、テストインクルージョンの根拠が似ていると認めます。
Selenium は、一部のプレゼンテーションテスト (例えば、制限付きデータ伝送テスト) に利用できますが、LoadView のような正確なスタックテストには使用できません。 例えば、セレンはかなりの時間のために、管理された数の勧誘を生成することはできません。 LoadView は、同時実行ユーザー、遅延、ランプ アップ/ランプ ダウン時間などのロード テストの詳細を設定します。
前述のように、LoadView は実際のブラウザーを通じて ウェブ アプリケーション セッションのステップ バイ ステップ スクリプトを記録し、サーバーが見ている ウェブ セッションを再生できます。 さらに、LoadView には別のエンドクライアントエクスペリエンスが含まれており、ウェブ ページをテストして、サイトの負荷が高いときにクライアントに表示される内容を確認できます。
テストが完了すると、パフォーマンス レポート、セッション レポート、ウォーターフォール チャートなどを使用してデータを表示し、各要素とコンポーネントのパフォーマンスの内訳を確認できます。 多くの場合、ユーザーが気付かない可能性があるエラーやバグがありますが、ロード時間とパフォーマンスに影響を与えています。 問題がどこにあるかを正確に確認できるため、チームは問題をすばやく修正できます。
結論:セレン負荷試験の説明
LoadView とセレンは、両方とも ウェブ アプリケーションのテストに使用されます。 ただし、基本的な違いは、LoadView は、負荷とストレスの下で ウェブ アプリケーションのプレゼンテーションをテストするために一般的に使用されます。 その後、再び、 Seleniumは、サイトの自動化とクロスプログラムのテストに最も適しています。 どのようなテストが実施に重要であるかを考慮すると、LoadView を使用してすべてのパフォーマンス テストのニーズを満たすことができます。
LoadViewは、市場のほとんどのツールには含まれない多くのすぐに使える機能を備えています。 さらに、ユーザーは、組織のニーズに最も適した複数のサブスクリプション ベースプランまたはオンデマンド プランから選択することもできます。
今日はあなた自身のためにロードビューを試してみてください!さらに良いことに、当社のパフォーマンスエンジニアの1人とライブ デモ をスケジュールします。 LoadView プラットフォームを順を追って実行し、ロード テストの設定、構成、実行の方法を正確に示します。
セレン ロゴ: ディエゴ モリーナ (ディエモール) / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)