Articles

分度器とは何ですか?

分度器

非常に最初の基本的なwebアプリアーキテクチャによると、一定のコンテンツのリロードと巨大なデータ交換によるサーバーは、webページ構築ロジック 更新を表示するには、ページを完全にリロードするか、つまり、クライアントがHTMLページの要求をサーバーに送信し、そのコード全体をもう一度ロードする必要があ このタイプのwebアプリケーションアーキテクチャ図を見てください。

レガシー CSA

今日、多くの企業は、最初のページが読み込まれた後、サーバーとのすべての相互作用がAJAX呼び出しを介して行われる伝統的なクライ これらのAJAX呼び出しは、マークアップではなく、通常JSON形式でデータを返します。 アプリはJSONデータを使用して、ページをリロードせずにページを動的に更新します。

このタイプでは、webページ構築ロジックはwebサービスに置き換えられ、クライアント上の各ページにはwidgetsと呼ばれる別々のエンティティがあります。 AJAXクエリをwebサービスに送信することで、ウィジェットはHTMLまたはJSONでデータのチャンクを受信し、ページ全体をリロードせずに表示できます。 リアルタイムウィジェットの更新では、このタイプは、より動的なモバイルフレンドリーで、次のタイプとほぼ同じくらい人気があります。

最新のCSA

Angularは、そのようなアプリケーションを作成できるフレームワークの1つです。 Angularには独自の機能セットが付属しているため、自動化テストのための従来のlocater戦略には時間がかかります。 分度器とは何ですか?

分度器とは何ですか?

分度器はAngularJSアプリケーションのためのエンドツーエンドのテストフレームワークであり、NodeJS、Selenium WebDriver、Jasmine、Cucumber、Mochaなどの強力なツールと技術を組み合わせたソリューショ 当初はangularアプリケーションをサポートするためにGoogle開発者によって開発され、後にオープンソースのフレームワークとしてリリースされました。 今分度器は、角度と非角度の両方のアプリケーションをサポートしています。 分度器はWebdriverの上に書かれたラッパーです。jsでは、Selenium Webdriverでサポートされているすべての機能は、angular固有の機能に加えて、それによってサポートされています。WebDriverJsは、seleniumの公式のjavascript実装です。 Selenium JAVAと同様に、Selenium JSON-Wire-Protocolを使用してブラウザと対話します。 分度器は、ブラウザと対話するためにWebdriverJsに依存しています。Angular JS web要素を識別するのが難しいのはなぜですか?Angular JSアプリケーションには、ng-repeater、ng-controller、ng-modelなどの追加のHTML属性があります。.、等。 Seleniumロケータには含まれていません。 Seleniumは、Seleniumコードを使用してこれらのweb要素を識別できません。 そのため、Seleniumの上部にある分度器は、Webアプリケーションでこれらの属性を処理および制御できます。分度器とは何ですか?

分度器とは何ですか?

分度器の機能

角度固有のロケータをサポートしています: Angularアプリケーションには、ng-model、ng-bind、ng-repeatなどの角度固有のロケータが付属しています。 だから分度器は、これらのロケータのサポートを拡張しています。 分度器では、これらのロケータはあなたのために準備ができているので、あなただけで使用することができます。モデル、によって。中継器、等。分度器は、角度のための拡張サポートを持っていますが、それはまた、非角度のアプリケーションのためにサポートしています。

非角度と角度の両方のアプ つまり、アプリケーションの一部が非角度であり、その一部が角度である場合でも、分度器フレームワークを選択でき、完全なエンドツーエンドの自動化テス

クロスブラウザテストをサポートしています:Chrome、Firefox、Safari、IE11、Edgeなどの複数のブラウザでスクリプトを実行できます。 クロスブラウザテスト用の設定は簡単で、多くの時間を消費しません。 このトピックについては、今後のチュートリアルで詳しく説明します。

並列実行をサポートしています:すべてのテストケースを順次実行する必要がある場合は、膨大な数のテストケースがあると考えてください。i。e次々にそれは多くの時間を消費します。 この場合、並列実行が役立ちます。 並列実行は、ブラウザの複数のインスタンスでテストケースを実行しますたとえば、4つのテストケースがある場合、ブラウザの2つのインスタンスで実行すると、それぞれが1つの時点で2つのテストケースが実行されるため、より短い時間でより多くのテストケースが実行されます。

ヘッドレスブラウザをサポートしています:ヘッドレスブラウザは、ユーザーインターフェイス 分度器はまた、ヘッドレスブラウザをサポートしています。

拡張性をサポートしています:分度器はノードであるためです。jsアプリケーションは、ノードで利用可能なパッケージの多種多様を利用することができます。 そのため、ノードパッケージをインストールすることで、フレームワークを拡張したり、追加の機能を追加することができます。 たとえば、HTMLレポートが必要な場合は、Jasmine HTML Reporterを使用するだけで、クリーンなコードにはeslintまたはtslintをインストールできます。 同様に、任意のノードパッケージをインストールできます。

は、非ノードと比較して、レポートプラグインをサポートしています。jsベースのオープンソースの自動化フレームワーク分度器でレポートを設定するのは簡単です。 Jasmine HTML Reporterは、レポート生成フレームワークの1つです。 これはあなたの仕様のHTMLレポートを生成します。 クラウドベースのテストプラットフォームでは、複数のブラウザ(Chrome、Firefox、Safariなど)で仕様を実行できます。)、複数のプラットフォーム(Windows、Mac、Linux、モバイルなど。). 分度器はSauceLabsのような主要な雲のテストのプラットホームによって支えられますCrossBrowserTesting.com.

複数のアサーションライブラリをサポートしています:分度器はJasmine、Mochaなどの複数のアサーションライブラリをサポートしています。 既定では、分度器はアサーションにJasmineフレームワークを使用します。

制御フローをサポートしています:APIは、制御フローによって管理され、Jasmineに適応されたpromiseに基づいています。 分度器Apiは完全に非同期です。 すべての関数はpromiseを返します。 これは、制御フローと呼ばれる保留中のプロミスのキューを維持して、実行を整理し続けます。 (私たちは、今後のチュートリアルのセクションで約束についての詳細をカバーします)。

様々なIdeをサポートしています&編集者:あなたが選ぶことができる市場にはたくさんのIdeがあります。 最も人気のあるエディタは、Visual Studio Code、WebStorm、Visual Studio Professional、Atom、sublimeです。 (今後のチュートリアルについて詳しく説明します)

CI/CDをサポートしています:自動化スクリプトが配置されると、手動で実行して監視する必要はあ 新しいコードがリポジトリに移動するたびに、分度器テストが自動的に実行され、レポートが取得されます。 分度器テストを統合してJenkins、TFS、Azure DevOpsなどのツールを構築することで、これを達成できます。 分度器は、ビルドツールの統合をサポートしています。 (私たちは私たちの今後のチュートリアルで段階的な設定の詳細をカバーすることになります)。分度器はどのように機能しますか?

分度器は、エンドツーエンドのテストフレームワークであり、分度器はWebdriverJSの上に構築され、WebdriverJSはSelenium webdriver API javascriptバインディングです。 つまり、WebdriverJS APIはjavascriptで書かれたテスト用のApiを提供します。 分度器はSeleniumベースのテストフレームワークであり、分度器はseleniumサーバーやChromeDriver、GeckoDriver、SafariDriverなどのWebドライバーと相互作用します。 ユーザーの操作をシミュレートします。

テストスクリプトがSeleniumサーバーにコマンドを送信すると、ブラウザドライバと通信してコマンドを実行します(アクションを実行します)。 次はアサーションフレームワークで、分度器はジャスミン、モカなどの様々なアサーションフレームワークをサポートしています。 このアサーションフレームワークは、私たちが値を検証または検証するのに役立ち、順番に、あなたのテストは合格または不合格としてマークされます。 短い分度器では、WebdriverJS、Selenium Server、Browser Driver、およびAssertion Frameworkは、エンドツーエンドのテストを記述して実行するためのインフラストラクチャを提供します。