Page Object ModelはWebアプリケーションを自動化する最良の方法ですか?PageオブジェクトモデルまたはJavaScriptテストの代替手段ですか?
私の場合、脚本のパターンはそれを管理するためのより良い方法と思われます。
またはCucumber.jsのAcceptance Testingなどの代替JavaScriptを使用してください(例:& WebdriverIO)。
Page Object ModelはWebアプリケーションを自動化する最良の方法ですか?PageオブジェクトモデルまたはJavaScriptテストの代替手段ですか?
私の場合、脚本のパターンはそれを管理するためのより良い方法と思われます。
またはCucumber.jsのAcceptance Testingなどの代替JavaScriptを使用してください(例:& WebdriverIO)。
あなたの質問には答えが1つしかないように聞こえますが、実際には正しくコーディングするとこれらをまとめてマージすることができます。
ページオブジェクトモデル
これはあなたのコードの残りの部分からページの要素の分離に適しています。正しく実装されている場合は、POMの1行を変更するだけで、そのページを使用するすべてのシナリオでページの変更を修正できます。
nextButton.click();
fullName.sendKeys("John Doe");
脚本パターン
これは別のページ、別のワークフローで発生したアクションの分離のために良いです。
james.attemptsTo(
goToTheNextPage(),
fillOutHisDetails()
);
旅が若干変更されたワークフローを持っている場合は、アイデアは、あなたは、単に脚本パターンを並べ替え、またはもはや必要なアクションを削除することができるということです。上記の例で 事業は、登録フォームが単一のページの代わりの倍数でなければならないことを決定した場合、それはこの単一の行を削除する方が理にかなって:
goToTheNextPage(),
の代わりに、そのI 2を削除します入れているだろう:
driver.findElement({css:"#next"}).click();
driver.findElement({css:"#registrationDetails"});
CucumberJS + WebdriverIO
これは純粋なビジネス言語でのシナリオの情報を表現する良いです。彼らに
をマージ
Scenario: I am filling out the registration form
Given I am a new user
And I want to register for an account
When I fill out the registration form
Then I should be able to log in
あなたは本当に人間が読めるコードが必要な場合は、これらのすべての3をマージすることができます。
ビジネスレベルの言語で機能ファイルを使用しています。 脚本のパターンを念頭に置いたステップ定義があります。 ページオブジェクトモデルで記述された脚本パターンのステップがあります。
これは多くのレイヤーのように見えるかもしれませんが、ビジネスがシナリオを理解できるようになることを意味します。コードを振り返るテスターと開発者は特定の旅程のワークフローを理解し、デバッグ時のコードは、テスターが1行のコードを変更するだけで、複数の旅に渡って要素の値を変更することができます。