2016-08-05 10 views
0

私は、一連のカテゴリ、サブカテゴリ、およびリンクで構成される開発中のページがあります。基本的には、メインカテゴリの下に階層構造でリストされている数百のリンクがあります。メインカテゴリには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(); 
} 
+0

正確に何をテストする必要がありますか?リンクが壊れていないこと(404's)? – lauda

+0

@lauda正確に。 404がなく、指定されたリンク(xpathで選択)から開くページのURLが、Excelシートにある予想されるURLであること。 – flyntstone92

答えて

1

ページが開かれているかどうか。 ほとんどのリンクが壊れている場合は、失敗したテストをしたくないでしょう。

オプションの一部

は以下のとおりです。壊れたリンク

  • ライブラリーを見つけるためにすべてのあなたのウェブサイトをチェックし

    1. 使用(でもオンラインあなたが任意のセキュリティ制限を持っていない場合は)いくつかの既知のツールすべてのページを自動的にクロールして壊れたリンクをチェックするキュウリと一緒に使用します。このオプションを1つのステップに統合することができます。

    2. すべてのリンクのすべてのページをチェックをクロールし、あなたのシナリオで

    を、それを使用するカスタムスクリプトの書き込み/検索私はクロールと確認するためにスクリプトを使用するより良いアプローチだと思いますリンクをハードコード化してファイルに保存するよりも、

    この機能をシナリオに統合することをお勧めします。これは、自動化されたスイートがあり、実行ごとにこのチェックもしたい場合のみです。

  • 関連する問題