美文网首页Cypress
WEB自动化-11-数据驱动

WEB自动化-11-数据驱动

作者: Surpassme | 来源:发表于2022-09-28 00:17 被阅读0次

    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}`);
                });
            });
        });
    });
    

    相关文章

      网友评论

        本文标题:WEB自动化-11-数据驱动

        本文链接:https://www.haomeiwen.com/subject/oowqartx.html