11 数据驱动
数据驱动是测试框架中一个非常好的功能,使用数据驱动,可以在不增加代码量的情况下生成不同的测试策略。下面我们来看看在Cypress中的数据驱动使用方法。
11.1 数据在文件中
在前面已经使用很多次,示例如下所示:
[
{
"ID": "Data-1",
"name": "Surpass",
"age": 28
},
{
"ID": "Data-2",
"name": "Kevin",
"age": 29
}
]
示例代码如下所示:
/// <reference types="cypress" />
import Data from "./user.json"
describe('数据在文件中', () => {
Data.forEach(item => {
it(item.ID, () => {
cy.log(`name is ${item.name},age is ${item.age}`);
});
});
});
11.2 使用fixture
Cypress中fixture默认位于cypress\fixtures\example.json文件中。操作步骤如下所示:
- 在cypress\fixtures\example.json,创建user.json,并添加以下的数据:
[
{
"ID": "Data-1",
"name": "Surpass",
"age": 28
},
{
"ID": "Data-2",
"name": "Kevin",
"age": 29
}
]
- 使用fixture,如下所示:
/// <reference types="cypress" />
describe('数据在fixture中', () => {
it('测试fixture用法-1', () => {
// 由于使用默认目录,则路径可以省略,否则需要添加文件所在路径
cy.fixture("user.json", "utf8").as("userData");
cy.get("@userData").each((item) => {
cy.log(`name is ${item.name},age is ${item.age}`);
});
});
it('测试fixture用法-2', () => {
// 由于使用默认目录,则路径可以省略,否则需要添加文件所在路径
cy.fixture("user.json", "utf8").then((element) => {
let data = element;
data.forEach(item => {
cy.log(`name is ${item.name},age is ${item.age}`);
});
});
});
});
网友评论