如何在 Cypress 中执行数据驱动测试?
Cypress 数据驱动测试是借助 fixture 实现的。Cypress fixture 用于维护和保存自动化测试数据。fixture 保存在 Cypress 项目的 fixtures 文件夹(例如 example.json 文件)中。它基本上帮助我们从外部文件获取数据输入。
Cypress fixtures 文件夹可以包含 JSON 或其他格式的文件,数据以“键:值”对的形式维护。所有这些测试数据可以被多个测试使用。所有 fixture 数据都必须在 before hook 块中声明。
语法
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 – 修改响应的超时时间。默认值为 30000ms。cy.fixture() 之前的等待时间会抛出异常。
示例
在 example.json 中实现
{ "fullName": "Robert", "number": "789456123" }
实际测试的实现
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) }); });
执行结果
输出日志显示值 Robert 和 789456123 分别被馈送到“全名”和“手机号码”字段。这些数据已从 fixture 传递到测试。
广告