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}`);
});
});
});
});
原文地址:https://www.jianshu.com/p/cc42088f1bef
本文同步在微信訂閱號上發佈,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼添加關注: