Cypress - 数据驱动测试
Cypress 数据驱动测试借助 Fixture 实现。添加 Cypress Fixture 是为了维护和保存自动化测试数据。
Fixture 保存在 Cypress 项目中的 Fixture 文件夹(example.json 文件)内。基本上,它帮助我们从外部文件获取数据输入。
Cypress Fixture 文件夹可以包含 JavaScript 对象表示法 (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 进行数据驱动测试的实现 −
{ "email": "abctest@gmail.com", "password": "Test@123" }
实际测试的实现
Cypress 中实际数据驱动测试的实现如下 −
describe('Tutorialspoint Test', function () { //部分 before hook before(function(){ //访问 fix 数据 cy.fixture('example').then(function(signInData){ this.signInData = signInData }) }) // 测试case it('Test Case1', function (){ // 启动 URL cy.visit("https://www.linkedin.com/") // 从 Fixture 驱动的数据 cy.get('#session_key ') .type(this.signInData.email) cy.get('# session_password').type(this.signInData.password) }); });
执行结果
输出如下
输出日志显示值 abctest@gmail.com 和 Test@123 分别被输入到 Email 和 Password 字段。这些数据已从 Fixture 传递给测试。