2017-01-20 5 views
1

protractorなどのJavaScript UI自動化フレームワークは、基本的にオブジェクトを見つけて操作を実行するような基本的な操作である、UIテストの自動化のような単純なタスクのためのおそらくは過剰な非同期実行、約束、コールバック、その上に。UIテストの自動化のための言語としてJavaScriptを選択するのはなぜですか?

JavaScriptベースの自動化フレームワークでAngularJS /その他のフロントエンドWebアプリケーション開発用のJavaScriptフレームワークページを処理できる場合は、JavaScriptフレームワークを使用する理由を教えてください。

シンプルで読みやすく、ユーザーフレンドリーなUIテスト自動化に適したRuby/Pythonなどの言語で分度器のようなフレームワークの移植を使用することができますか?

注:私は、JavaScriptやProtractorのようなフレームワークには反対していません(実際に分度器を使って複数の大規模プロジェクトの自動化フレームワークを設計しています)が、テスト用の言語としてJavaScriptを選択する際のトレードオフオートメーション?

+2

binding – Find an element by text binding. exactBinding – Find an element by exact binding. model – Find an element by ng-model expression. buttonText – Find a button by text. partialButtonText – Find a button by partial text. repeater – Find elements inside an ng-repeat. exactRepeater – Find an element by exact repeater. cssContainingText – Find elements by CSS which contain a certain string. options – Find an element by ng-options expression. deepCss – Find an element by css selector within the Shadow DOM. 分度器

が提供するいくつかの余分なelement locato R技術は、あなたがJavaScriptで作業する場合、ほとんどの場合、それはあなたがすでによく知っている言語です。だから、どうしてあなたがもっと悪く知っているかもしれない、Javaのような言葉に行くのだろうか?あなたが知っている言語に固執してください。 – pietrovismara

+5

あなたの質問は非常に曖昧です、あなたは何を知りたいですか? AngularJSを広範囲にテストしたい場合、分度器は非常によく機能します。どのような選択肢がありますか? –

+1

私たちは実際に、角型アプリのためのテストを書く独立したテスト自動化チームを持っています。分度器は、Javaのような他の言語でも実際に書くことができます。私は本当にこの質問のポイントを見逃しています。 –

答えて

4

私はAngularJsアプリケーション

をテストするためのケーススタディの下のJava-セレンオーバー分度器の利点を説明した。しかし、あなたはJavascriptをベースのフレームワークが他のフレームワークよりも優れて角度を理解しどのように一般的なルールとして、これを適用することができます。これは私からの抜粋ですblog post on the same

これは、テストエンジニアが持っている永遠の質問に答えるものです。

1.Java-SeleniumからNodeJs-Protractorに移行する理由は何ですか?

2.努力する価値はありますか?

3.分度器は何を提供しますか?

4.分度器について大したことはありませんか?

5.あなたはすべての待機で不満を感じています&はあなたのコードで眠っていますか?

これらの利点を提供

セレンオーバー1.Understands角度ライフサイクル

分度器がAngularJsを作成した人々によって作られた、それはbootstrapped.Theseであることを理解し、AngularJsを待ち分度器ていますアプリケーションはブラウザで目に見える振る舞いの変化がなく、バックグラウンドで実行されており、Seleniumが理解して同期できるようになります。セレンで作成されたスクリプトは、ぎこちなく待っているので、&がスリープします。

browser.waitForAngular() Thisは、Angularのレンダリングが完了するまで待ってから、続行する前に未処理の$ httpまたは$ timeoutコールがないように指示します。

分度器は、すべてのWebDriverアクションの前に自動的にこのコマンドを適用します。そしてNGリピート内部発見要素 -

2.Provides添加元素検出技術は

分度器は、角度特定ロケータstrategy.Theyは角モデル、バインディング、NG-オプションで要素を選択するオプションを提供する提供します。アプリケーションのページで

HTML要素:

<pre><code> <div> <span ng-bind="firstName" class="ng-binding">Sachin</span> <br> <span ng-bind="lastName" class="ng-binding">Tendulkar</span>

分度器element(By.binding('user.firstName'))

要素の場所

セレンで

要素場所:セレンでこの要素を識別し、依存するために持っている何のユニークな方法はありません固有の隣接要素を特定し、相対パスを提供する。

まあ

+1

Aditya、質問を真剣に見ると、分度器ではなく、基本的なレベルでテスト自動化のためのJavaScriptを選択することです... –

+0

はい..これは特定のケース - Selenium WebDriver - Java over protractor-JavaScriptに答えます。あなたはこれをあなたの質問に推論することができます..これは、Java APIソリューションが提供するアドバンテージが優れていることを示しています。 – AdityaReddy

+0

OK ...だから、Adityaは、ルービやPythonのような言語に移植できませんか?ここに必要なJavaScriptに固有のものがありますか? –

1

JavaScriptアプリケーションをテストするときは、一般的には分度器または別のJavaScriptベースのテストフレームワークを選択するのが一般的です。なぜなら、通常はサーバーの単体テストを書くのと同じように、あなたがコーディングしているのと同じサーバーサイドの言語でコードを書いてください。一方で、でないとわかりやすく、より直感的な他のテストスキームが見つかると、完全に許可されます自分で打ち負かし、好きな技術を使いましょう。それは簡単です!

+0

JavaScriptアプリケーションであっても、非同期性がないため、RubyやPythonなどの言語でコードを記述する方がはるかに簡単です。私の指摘は、非同期性はWebアプリケーション開発にとって非常に便利な機能ですが、UIテストの自動化まったく必要ありません。 –

+1

それは私が言ったことと矛盾しますか?私の要点は、一般的に、特定のフレームワークを使ってテストを行うということです。なぜなら、自分や雇用主の技術スタックを選んだ人が自分のニーズに最も適していると信じていたからです。それはすべてそこにある! –

関連する問題