Cypress - 数据驱动测试

Cypress数据驱动测试是在夹具的帮助下实现的。添加Cypress夹具来维护和保存测试数据以实现自动化。

Fixtures保存在Cypress项目的fixtures文件夹(example.json文件)中。基本上,它帮助我们从外部文件获取数据输入。

固定装置

Cypress 装置文件夹可以包含 JavaScript 对象表示法 (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 进行数据驱动测试的实现 -

{
   "email": "abctest@gmail.com",
   "password": "Test@123"
}

实际测试实施

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

describe('Tutorialspoint Test', function () {
   //part of before hook
   before(function(){
      //access fixture data
      cy.fixture('example').then(function(signInData){
         this.signInData = signInData
      })
   })
   // test case
   it('Test Case1', function (){
      // launch URL
      cy.visit("https://www.linkedin.com/")
      //data driven from fixture
      cy.get('#session_key ')
      .type(this.signInData.email)
      cy.get('# session_password').type(this.signInData.password)
   });
});

执行结果

输出如下

实际测试实施

输出日志显示值 abctest@gmail.com 和 Test@123 分别馈送到电子邮件和密码字段。这些数据已从夹具传递到测试。