Cypress - 装置

添加Cypress夹具来维护和保存测试数据以实现自动化。这些装置保存在 Cypress 项目的装置文件夹(example.json 文件)内。基本上,它帮助我们从外部文件获取数据输入。

特征

Cypress 装置文件夹可以包含 JSON 或其他格式的文件,并且数据以“键:值”对的形式维护。

所有测试数据均可用于多次测试。所有夹具数据都必须在 before hook 块中声明。

句法

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)

这里,

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

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

  • Opts - 修改响应超时。默认值为 30000 毫秒。cy.fixture() 的等待时间,先于抛出异常。

example.json 中的实现

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

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

实际测试实施

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)
   });
});

执行结果

输出如下 -

Cypress 中的数据驱动测试

输出日志显示值 Robert 和 789456123 分别输入到“全名”和“手机号码”字段。该数据已从夹具传递至测试。