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

Cypress多环境测试:如何通过JSON读取环境值复用测试数据

实现Cypress多环境测试数据自动切换

一、调整JSON文件结构

先按你的需求重构两个JSON文件,把不同环境的配置和测试数据分别归类:

修改后的credentials.json

{
  "environment": "stage",
  "stage": {
    "url": "stage.site.url",
    "sausername": "stage-sausername",
    "sapassword": "stage-sapassword",
    "viewonlyusername": "stage-vouusername",
    "viewonlypassword": "stage-voupassword"
  },
  "test": {
    "url": "test.site.url",
    "sausername": "test-sausername",
    "sapassword": "test-sapassword",
    "viewonlyusername": "test-vouusername",
    "viewonlypassword": "test-voupassword"
  }
}

修改后的SuperAdminTestData.json

{
  "stage": {
    "accountName": "stage-account name",
    "PartnerAdminAccount": "Automation Partner (Stage)",
    "WholesalePartnerAccount": "Automation Wholesale Partner (Stage)",
    "mitelAccountName": "Platform name (Stage)",
    "siteName": "stage-site name"
  },
  "test": {
    "accountName": "test-account name",
    "PartnerAdminAccount": "Automation Partner (Test)",
    "WholesalePartnerAccount": "Automation Wholesale Partner (Test)",
    "mitelAccountName": "Platform name (Test)",
    "siteName": "test-site name"
  }
}

二、修改测试脚本(SuperAdminSpec.js)

调整before钩子的逻辑,先读取环境配置,再自动匹配对应环境的测试数据:

describe("Super Admin - User Roles and Permissions", function () {
  let currentEnvCredentials, currentEnvTestData;

  before(function () {
    // 先读取凭证文件,获取当前指定的环境
    cy.fixture('credentials').then((credentials) => {
      // 统一转小写,避免大小写不匹配问题
      const currentEnv = credentials.environment.toLowerCase();
      // 取出当前环境的凭证
      currentEnvCredentials = credentials[currentEnv];

      // 根据当前环境,读取对应测试数据
      cy.fixture('SuperAdminTestData').then((allTestData) => {
        currentEnvTestData = allTestData[currentEnv];
      });
    });
  });

  it("Login with valid credentials", function () {
    loginfunction(currentEnvCredentials.url, currentEnvCredentials.sausername, currentEnvCredentials.sapassword);
  });

  it('Navigate to Partner Admin account', function () {
    clickAllcustomers();
    clickCustomer(currentEnvTestData.PartnerAdminAccount);
  });
});

三、关键说明

  • 大小写兼容:把environment的值转成小写,避免JSON里stage和Stage这类大小写差异导致的匹配失败
  • 异步顺序:利用Cypress fixture的异步链式调用,确保先拿到环境名称,再去读取对应环境的测试数据
  • 切换环境:只需要修改credentials.json里的"environment": "stage"为"environment": "test",所有测试就会自动切换到对应环境的配置和数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:26:05