私は、一連のカテゴリ、サブカテゴリ、およびリンクで構成される開発中のページがあります。基本的には、メインカテゴリの下に階層構造でリストされている数百のリンクがあります。メインカテゴリには1〜4レベルの深さが含まれます(一部のメインカテゴリには直接リンクが含まれ、その他のカテゴリには直接リンクにつながる3つのサブカテゴリが含まれます)。Selenium&Cucumber JVM-Javaを使用した一連のリンクのテスト
ページはAngularを使用して作成されているため、サブカテゴリリンクをクリックすると基本的にモデルが更新され、適切なデータがロードされ、直接リンクをクリックすると外部ウィンドウにURLが開きます。レベル間を行き来するためのブレッドクラムがあります。カテゴリをクリックすると、そのレベルの直接リンクを含む、その下のすべてのサブカテゴリが表示される新しいビューに移動します。ここから、ユーザは、所望の直接リンクが見つかるまで、任意の数のレベルを見ることができる。要は、階層のレベルは一貫していません。
Seleniumを使ってすべてのレベルでリンクをテストするためのクラスをすでに開発しているため、レベルをループして見つかった各直接リンクURLを開くことができます。しかし、私はどのようにページが設定されているのかを概観したいと思っていました。単なるテスト用のリンクのリストではなく、外部サイトへのリンクにつながるマルチレベルの階層です。
前述したように、セレンテストはうまく動作します。 Javaクラスは、Excelシートから予想される階層とURLを読み取り、ダイレクトリンクが見つかるまでページをナビゲートして開き、ロードされたページに予想されるURLが含まれていることを確認します。同じExcelシートでは、テストの結果に基づいてプログラムはPASSまたはFAILの値を書き込みます。
問題は、私の既存のセレンの例をキュウリのステップ定義に変換することです。私が見ている最大の問題は、すべての直接リンクの階層のレベルをチェックするネストされたループへの依存です。私はキュウリでどのようにループを使うのかよく分かりません。私はそれについてもっと読むと、これはキュウリの機能性の正しい応用ではないように思えます。このようなリンクテストのランナーをテストするためにキュウリを使用しようとするのは間違っていますか?私は妥当な数の機能とステップ定義をマッピングするようには思えません。これまでのキュウリを理解する方法は、@ Given、@When、@Thenなどのアノテーション(つまり、各テストケースが個別にマップされる)を使用するメソッドにマップされる有限数の機能を記述することです。 Seleniumの例ではExcelシートから読み込んだリンクに基づいて実行するケースの数を動的に決定していますが、実際には実行できないようです各リンク階層の機能を記述します。私は以下のような単純な機能を始め、私はどのように私ができるループを通る参照し、各リンクのためにこれらのステップを実行していないので、私は壁にヒットしました:
Feature: Click Final Link
Scenario: Successfully click final link
When User Clicks on Final Link
Then Load Link
@When("^User Clicks on Final Link$")
public void User_Clicks_on_Final_Link() throws Throwable {
// Express the Regexp above with the code you wish you had
throw new PendingException();
}
Feature: Click Category
Scenario: Successfully click category link
When User Clicks on Category Link
Then Load Subcategory Links
私はキュウリが、このために作られていない、あなたがいないこと、いくつかの仕様をテストするべきだと思い
@When("^User Clicks on Category Link$")
public void User_Clicks_on_Category_Link() throws Throwable {
// Express the Regexp above with the code you wish you had
throw new PendingException();
}
正確に何をテストする必要がありますか?リンクが壊れていないこと(404's)? – lauda
@lauda正確に。 404がなく、指定されたリンク(xpathで選択)から開くページのURLが、Excelシートにある予想されるURLであること。 – flyntstone92