マクロファイルの作成

マクロファイルの作成

テストシナリオ

以下のテストシナリオを使用して、最初のマクロファイルを作成します。

learn.liferay.comの記事に自分の名前が表示されないことをテストします。 下記の手順で行います。 別のブラウザで手動で操作して手順を確認してください。

  1. Liferay Learn サイト に移動します。

  2. 検索入力フィールドをクリックします。

  3. 検索キーワードに自分の名前を入力してください。

  4. Enterキーを押して、検索キーワードを入力します。

  5. 検索結果がないことをアサートします。 自分の名前で検索して結果が出る場合は、他の名前を選択してください。

  6. 利用できる記事がないというメッセージが表示されることをアサートします。

マクロファイルの構築

  1. poshi-standalone/poshi-tests/macros ディレクトリに空のファイルを作成し、 LiferayLearnSearch.macroという名前を付けます。

  2. マクロファイルは、定義ブロックで始まります。 これを LiferayLearnSearch.macro ファイルに追加してください。

    definition {
    
    }
    
  3. .macroファイルの定義ブロックの中で、マクロブロックを使って個々のマクロを定義します。 そのためには、マクロキーワードの後に、文字列の識別子名を使用します。 これらのマクロ名はユニークであり、意図された連携を説明するものでなければなりません。 詳細は マクロ を参照してください。 このシナリオでは、用語を検索するマクロは、単純に searchForTermと呼ぶことができます。

  4. テストシナリオのステップ2からステップ4は、合わせて1つの検索連携を構成するアクションです。 これらの3つのステップは、 searchForTerm マクロブロックの中に含まれます。 これらのアクションは、 パスファイルの作成 の記事で作成したロケーターと 関数 を使用してスクリプト化できます。 関数の使い方の詳細は、 関数をご覧ください。

    このマクロは以下の結果となります。

    macro searchForTerm {
        Default.Click(
            locator1 = "LiferayLearn#SEARCH_BAR");
    
        Default.Type(
            locator1 = "LiferayLearn#SEARCH_BAR",
            value1 = "${searchTerm}");
    
        Default.KeyPress(
            locator1 = "LiferayLearn#SEARCH_BAR",
            value1 = "\ENTER");
    }
    
  5. searchForTerm マクロとは別に、テストシナリオでは結果をアサートするための2つ目のマクロを要求しています。 ステップ5と6は別々のアサーションですが、一緒になって検索結果がないことをアサーションするという一つのユーザー連携を形成します。 このマクロは、 assertNoResultsという名前にすることができます。

    macro assertNoResults {
        Default.AssertElementNotPresent(locator1 = "LiferayLearn#SEARCH_RESULTS",
            value1 = "${searchTerm}");
    
        Default.AssertElementPresent.assertVisible(locator1 = "LiferayLearn#NO_RESULTS_MESSAGE");
    }
    
  6. マクロファイルは、次のような結果となります。

    definition {
    
        macro assertNoResults {
            Default.AssertElementNotPresent(locator1 = "LiferayLearn#SEARCH_RESULTS",
                value1 = "${searchTerm}");
    
            Default.AssertElementPresent.assertVisible(locator1 = "LiferayLearn#NO_RESULTS_MESSAGE");
    
        }
    
        macro searchForTerm {
            Default.Click(
                locator1 = "LiferayLearn#SEARCH_BAR");
    
            Default.Type(
                locator1 = "LiferayLearn#SEARCH_BAR",
                value1 = "${searchTerm}");
    
            Default.KeyPress(
                locator1 = "LiferayLearn#SEARCH_BAR",
                value1 = "\ENTER");
        }
    }