Cypress - Fixtures
添加 Cypress Fixtures 是为了维护和保存自动化测试数据。Fixtures 保存在 Cypress 项目中的 Fixtures 文件夹(example.json 文件)内。基本上,它帮助我们从外部文件获取数据输入。
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) }); });
执行结果
输出如下 −
输出日志显示 Robert 和 789456123 分别被输入到 Full Name 和 Mobile No. 字段。该数据已从装置传递至测试。