Cypress - Fixtures

添加 Cypress Fixtures 是为了维护和保存自动化测试数据。Fixtures 保存在 Cypress 项目中的 Fixtures 文件夹(example.json 文件)内。基本上,它帮助我们从外部文件获取数据输入。

Features

Cypress Fixtures 文件夹可以包含 JSON 或其他格式的文件,数据以"键:值"对的形式保存。

所有测试数据都可以被多个测试使用。所有 Fixture 数据都必须在之前的钩子块中声明。

语法

Cypress 数据驱动测试的语法如下 −

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

这里,

  • 测试数据路径 是 Fixtures 文件夹中测试数据文件的路径。

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

  • Opts − 修改响应的超时时间。默认值为30000ms。 cy.fixture() 的等待时间,先前会抛出异常。

example.json 中的实现

下面给出了在 Cypress 中使用 example.json 进行数据驱动测试的实现 −

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

实际测试的实现

在 Cypress 中实际数据驱动测试的实现如下 −

describe('Tutorialspoint Test', function () {
    //before hook 的一部分
    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)
    });
});

执行结果

输出如下 −

Cypress 中的数据驱动测试

输出日志显示 Robert 和 789456123 分别被输入到 Full Name 和 Mobile No. 字段。该数据已从装置传递至测试。