如何在 Cypress 中执行数据驱动测试?

rest assureddynamic programmingprogramming更新于 2025/4/5 10:07:17

Cypress 数据驱动测试借助 Fixture 实现。Cypress Fixture 用于维护和保存自动化测试数据。Fixture 保存在 Cypress 项目的 Fixtures 文件夹(example.json 文件)中。它主要帮助我们从外部文件获取数据输入。

Cypress Fixtures 文件夹可以包含 JSON 或其他格式的文件,数据以"键:值"对的形式保存。所有这些测试数据都可以被多个测试使用。所有 Fixture 数据都必须在 before hook 块中声明。

语法

cy.fixture(测试数据路径)
cy.fixture(测试数据路径,编码类型)
cy.fixture(测试数据路径,opts)
cy.fixture(测试数据路径,编码类型,opts)

此处

测试数据路径 - Fixtures 文件夹中测试数据文件的路径

编码类型 - 用于读取文件的编码类型(utf-8、asci 等)。

opts - 修改响应的超时时间。默认值为 30000 毫秒。 cy.fixture() 之前的等待时间会引发异常。

示例

example.json 中的实现

{
   "fullName": "Robert",
   "number": "789456123"
}

实际测试的实施

describe('Tutorialspoint Test', function () {
    //before 钩子的一部分
    before(function(){
        //访问 Fixture 数据
        cy.fixture('example').then(function(regdata){
            this.regdata=regdata
        })
    })
    // 测试用例
    it('Test Case1', function (){
        // 启动 URL
        cy.visit("https://register.rediff.com/register/register.php")
        // 从 Fixture 驱动的数据
        cy.get(':nth-child(3) > [width='185'] > input')
        .type(this.regdata.fullName)
        cy.get('#mobno').type(this.regdata.number)
    });
});

执行结果

输出日志显示,值 Robert 和 789456123 分别被输入到"全名"和"手机号码"字段。这些数据已从装置传递到测试。


相关文章