Protractor-introduction
分度器-はじめに
この章では、分度器の概要を説明します。ここでは、このテストフレームワークの起源と、このツールの動作、制限を選択する理由について説明します。
分度器とは何ですか?
Protractorは、AngularおよびAngularJSアプリケーション向けのオープンソースのエンドツーエンドのテストフレームワークです。 WebDriverの上にGoogleによって構築されました。 また、「Angular Scenario Runner」と呼ばれる既存のAngularJS E2Eテストフレームワークの代替としても機能します。
また、NodeJS、Selenium、Jasmine、WebDriver、Cucumber、Mochaなどの強力なテクノロジーを組み合わせたソリューションインテグレーターとしても機能します。 AngularJSアプリケーションのテストに加えて、通常のWebアプリケーションの自動回帰テストも作成します。 実際のブラウザを使用してテストを実行するため、実際のユーザーと同じようにアプリケーションをテストできます。
次の図は、分度器の簡単な概要を示します-
上記の図では、私たちが持っていることに注意してください-
- *分度器-前述のように、特に角型アプリ向けに設計されたWebDriver JSのラッパーです。
- Jasmine -基本的には、JavaScriptコードをテストするための動作駆動型開発フレームワークです。 Jasmineで簡単にテストを書くことができます。
- WebDriver JS -これは、selenium 2.0/WebDriverのNode JSバインディング実装です。
- Selenium -ブラウザを自動化するだけです。
原点
前述したように、Protractorは、「Angular Scenario Runner」と呼ばれる既存のAngularJS E2Eテストフレームワークの代替品です。 基本的に、分度器の起源はシナリオランナーの終わりから始まります。 ここで生じる疑問は、なぜ分度器を構築する必要があるのかということです。 これを理解するには、まずその前身であるシナリオランナーについて確認する必要があります。
分度器の開始
分度器の開発の主な貢献者であるジュリーラルフは、Google内の他のプロジェクトでAngular Scenario Runnerで次のような経験をしました。 これは、特にギャップを埋めるために、分度器を構築する動機になりました-
「シナリオランナーを使用してみましたが、テストに必要なことが実際にはできないことがわかりました。 ログインなどをテストする必要がありました。 ログインページはAngularページではなく、シナリオランナーはそれを処理できませんでした。 また、ポップアップや複数のウィンドウ、ブラウザの履歴のナビゲートなどのようなものには対処できませんでした。」
分度器の最大の利点は、Seleniumプロジェクトの成熟度であり、Angularプロジェクトで簡単に使用できるようにメソッドをまとめています。 Protractorの設計は、アプリケーションのWeb UI、バックエンドサービス、永続化レイヤーなどのすべてのレイヤーをテストするように構築されています。
分度器を使用する理由
ほぼすべてのアプリケーションが開発にJavaScriptを使用していることがわかっています。 JavaScriptのサイズが大きくなると、アプリケーション自体の数が増えるため、アプリケーションにとってテスターのタスクは難しくなり、複雑になります。 ほとんどの場合、AngularJSアプリケーションでWeb要素をキャプチャすることは非常に困難になり、JUnitまたはSelenium WebDriverを使用して、拡張HTML構文を使用してWebアプリケーションコンポーネントを表現します。
ここでの質問は、Selenium Web DriverがAngularJS Web要素を見つけることができない理由です。 その理由は、AngularJSアプリケーションがng-repeater、ng-controller、ng-modelなどの拡張HTML属性を持っているためです。 Seleniumロケーターには含まれていません。
ここでは、Seleniumの最上位にあるProtractorがAngularJS Webアプリケーションの拡張HTML要素を処理および制御できるため、Protractorの重要性が生まれます。 そのため、ほとんどのフレームワークは、AngularJSアプリケーションの単体テストの実行に焦点を当てていると言えます。Protractorは、アプリケーションの実際の機能のテストに使用されていました。
分度器の働き
テストフレームワークである分度器は、Seleniumと連動して、ブラウザーまたはモバイルデバイスで実行されているAngularJSアプリケーションとのユーザーの対話をシミュレートする自動テストインフラストラクチャを提供します。
分度器の動作は、次の手順の助けを借りて理解することができます-
- *ステップ1 *-最初のステップでは、テストを作成する必要があります。 それはジャスミンまたはモカまたはキュウリの助けを借りて行うことができます。
- *ステップ2 *-次に、分度器を使用して実行できるテストを実行する必要があります。 テストランナーとも呼ばれます。
- *ステップ3 *-このステップでは、Seleniumサーバーがブラウザーの管理に役立ちます。
- *ステップ4 *-最後に、ブラウザAPIはSelenium WebDriverの助けを借りて呼び出されます。
利点
このオープンソースのエンドツーエンドのテストフレームワークには、次の利点があります-
- オープンソースツールであるProtractorは、インストールとセットアップが非常に簡単です。
- Jasmineフレームワークと連携してテストを作成します。
- テスト駆動開発(TDD)をサポートします。
- 自動待機が含まれているため、テストに待機とスリープを明示的に追加する必要はありません。
- Selenium WebDriverのすべての利点を提供します。
- 複数のブラウザーを介した並列テストをサポートします。
- 自動同期の利点を提供します。
- テスト速度が優れています。
制限事項
このオープンソースのエンドツーエンドのテストフレームワークには、次の制限があります-
- WebDriver JSのラッパーであるため、ブラウザーの自動化で業種を明らかにしません。
- JavaScriptの知識はJavaScriptでのみ使用できるため、ユーザーにとって不可欠です。
- UI駆動のテストツールであるため、フロントエンドテストのみを提供します。