Cypress 简明教程

Cypress - Fixtures

利用 Cypress 的装置来维护并保存自动化的测试数据。 装置保存在 Cypress 项目中的装置文件夹(example.json 文件)中。基本上,它帮助我们从外部文件读取数据输入。

features

Cypress 装置文件夹可以具有 JSON 或其他格式的文件,数据保存在“键:值”对中。

所有测试数据都可以被多个测试使用。所有固定数据都必须在 before 钩子块内声明。

Syntax

Cypress 数据驱动的测试语法如下所示:

cy.fixture(path of test data)
cy.fixture(path of test data, encoding type)
cy.fixture(path of test data, opts)
cy.fixture(path of test data, encoding type, options)

在此,

  1. path of test data 是固定数据文件夹内测试数据文件的路径。

  2. encoding type - 编码类型(utf-8、asci 等)用于读取文件。

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

Implementation in example.json

以下是 example.json 在 Cypress 中使用数据驱动测试的实现 −

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

Implementation of Actual Test

在 Cypress 中实际进行数据驱动测试的实现如下:

describe('Tutorialspoint Test', function () {
   //part of before hook
   before(function(){
      //access fixture data
      cy.fixture('example').then(function(regdata){
         this.regdata=regdata
      })
   })
   // test case
   it('Test Case1', function (){
      // launch URL
      cy.visit("https://register.rediff.com/register/register.php")
      //data driven from fixture
      cy.get(':nth-child(3) > [width="185"] > input')
      .type(this.regdata.fullName)
      cy.get('#mobno').type(this.regdata.number)
   });
});

Execution Results

输出如下 −

data driven testing in cypress

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