WEB自動化-11-數據驅動

11 數據驅動

    數據驅動是測試框架中一個非常好的功能,使用數據驅動,可以在不增加代碼量的情況下生成不同的測試策略。下面我們來看看在Cypress中的數據驅動使用方法。

11.1 數據在文件中

    在前面已經使用很多次,示例如下所示:

[
    {
        "ID": "Data-1",
        "name": "Surpass",
        "age": 28
    },
    {
        "ID": "Data-2",
        "name": "Kevin",
        "age": 29
    }
]

    示例代碼如下所示:

/// <reference types="cypress" />

import Data from "./user.json"

describe('數據在文件中', () => {
   Data.forEach(item => {
    it(item.ID, () => {
        cy.log(`name is ${item.name},age is ${item.age}`);
    });
   });
});

11.2 使用fixture

    Cypress中fixture默認位於cypress\fixtures\example.json文件中。操作步驟如下所示:

  • 在cypress\fixtures\example.json,創建user.json,並添加以下的數據:
[
    {
        "ID": "Data-1",
        "name": "Surpass",
        "age": 28
    },
    {
        "ID": "Data-2",
        "name": "Kevin",
        "age": 29
    }
]
  • 使用fixture,如下所示:
/// <reference types="cypress" />

describe('數據在fixture中', () => {

    it('測試fixture用法-1', () => {
        // 由於使用默認目錄,則路徑可以省略,否則需要添加文件所在路徑
        cy.fixture("user.json", "utf8").as("userData");
        cy.get("@userData").each((item) => {
            cy.log(`name is ${item.name},age is ${item.age}`);
        });
    });

    it('測試fixture用法-2', () => {
        // 由於使用默認目錄,則路徑可以省略,否則需要添加文件所在路徑
        cy.fixture("user.json", "utf8").then((element) => {
            let data = element;
            data.forEach(item => {
                cy.log(`name is ${item.name},age is ${item.age}`);
            });
        });
    });
});

原文地址:https://www.jianshu.com/p/cc42088f1bef

本文同步在微信訂閱號上發佈,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼添加關注:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章