3

フィクスチャ フォルダーに以下の Test.json ファイルがあります。

[
    {
        "searchKeyword":"cypress"
    },
    {
        "searchKeyword":"QA automation"
    },
    {
        "searchKeyword":"stackoverflow"
    }
]

上記のファイルには、3 つの異なるデータセットが含まれています。

以下の仕様ファイルがあり、それには 1 つの It (テスト ケース) が含まれており、上記の入力に基づいて複数回実行されます。

Test.spec.js ファイル:

describe("Run the test parallel based on the input data",() =>{

    const baseUrl = "https://www.google.com/";

    before("Login to consumer account", () => {
        
        cy.fixture('Test').then(function (data) {
            this.data = data;
          })
    });

    it("Search the keyword", function () {
        this.data.forEach((testData) =>{
            cy.visit(baseUrl);
            cy.xpath("//input[@name='q']").type(testData.searchKeyword);
            cy.xpath("//input[@value='Google Search']").click();
            cy.get("//ul/li[2]").should("be.visible");
        });

    });

});

上記のコードは期待どおりに機能しています。しかし、異なるデータセットを使用して、上記の単一のテストを並行して実行したいだけです。

例: 3 つのブラウザー インスタンスが開いていて、Test.json ファイルから 3 つの異なるデータを選択し、Test.spec.js ファイルで利用可能な単一のテストを実行する必要があります。

プロジェクトの1つに実装するロジックが必要ですが、より複雑なコードを共有することはできません。その理由は、ダミーのテストデータとテストスクリプトを作成してロジックを実現するためです。

誰かがこれを達成するためにあなたの考えを共有してもらえますか.

4

1 に答える 1