You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WebdriverIO中实现数据驱动方案并完成数据读写?

WebdriverIO 数据驱动方案实现指南

基础数据驱动适配方案

和Selenium的实现逻辑一致,WebdriverIO可以完美兼容你之前用properties、Excel存储数据的习惯,对应实现方式如下:

  • 静态配置文件存储:不需要单独用properties文件,直接创建JS/JSON格式的配置文件即可,支持字符串、数字、数组、对象等全类型数据,导入更方便。示例:
    新建config/test-data.js文件写入内容:
    module.exports = {
      defaultAccount: 'test01@test.com',
      defaultPwd: '123456',
      businessTypeList: ['充值', '消费', '退款']
    }
    
    测试用例中直接导入使用:const testData = require('../config/test-data.js')
  • Excel/CSV数据源读取:如果习惯用表格维护测试数据,直接安装xlsxnpm包读取即可,不需要额外依赖。示例代码:
    const XLSX = require('xlsx')
    // 读取Excel文件
    const workBook = XLSX.readFile('./test-data/scenario-data.xlsx')
    // 转换指定工作表为JSON数组,每一行对应一条测试用例数据
    const caseDataList = XLSX.utils.sheet_to_json(workBook.Sheets['登录场景'])
    
    拿到数组后直接遍历即可实现参数化测试,和Selenium的Excel数据驱动逻辑完全一致。

全局共享日期变量实现

针对你需要统一基准日期、后续测试全基于该日期计算的需求,直接在WebdriverIO的全局配置钩子中定义变量即可,所有测试文件都可以全局访问,不会出现不同用例日期不一致的问题。
具体操作:

  1. 打开项目根目录的wdio.conf.js配置文件,找到before钩子,添加如下代码:
before: async (capabilities, specs, browser) => {
  // 定义全局基准日期,可写死固定值,也可以取当前日期
  global.baseTestDate = new Date()
  // 封装全局方法:获取基准日期之后/之前n天的日期
  global.getOffsetDate = (offsetDays) => {
    const targetDate = new Date(global.baseTestDate)
    targetDate.setDate(targetDate.getDate() + offsetDays)
    // 可根据业务需要调整返回格式,示例为YYYY-MM-DD格式
    return targetDate.toISOString().split('T')[0]
  }
}
  1. 在任意测试用例中直接调用即可:
  • 基准日期(第一天):global.getOffsetDate(0)
  • 第二天日期:global.getOffsetDate(1)
  • 第三天日期:global.getOffsetDate(2)
    如果需要固定基准日期,只需要修改global.baseTestDate的赋值为固定值即可,比如global.baseTestDate = new Date('2024-05-01'),所有测试用例都会基于2024-05-01计算偏移日期。

参数化测试示例

如果需要同一个测试场景跑不同日期的用例,直接遍历日期数组即可:

// 生成需要测试的3天日期
const testDateList = [0,1,2].map(offset => global.getOffsetDate(offset))
// 遍历参数生成测试用例
testDateList.forEach(testDate => {
  it(`验证日期为${testDate}的预约提交功能`, async () => {
    // 测试逻辑中直接使用testDate变量即可
  })
})

内容的提问来源于stack exchange,提问作者siri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:15:04