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,或扫描下面的二维码添加关注:

posted @ 2022-09-28 00:18  Surpassme  阅读(196)  评论(0编辑  收藏  举报