Cypress环境变量

Cypress环境变量

baseUrl
  • 当你配置了 baseUrl ,测试套件中的 cy.visit() 、 cy.request() 都会自动以 baseUrl 的值作为前缀
  • 并且,当你需要访问某些网址或者发起接口请求时,在代码中就可以不用再指定请求的 host 或者 url 了
如何配置 baseUrl

cypress.config.ts中新增变量baseUrl

import { defineConfig } from "cypress";

export default defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      // implement node event listeners here
    },
    baseUrl:''
  }
});
通过环境变量来覆盖 baseUrl

即使配置了 baseUrl ,我们也可以通过环境变量来覆盖它

CYPRESS_baseUrl=https://www.baidu.com
设置环境变量的方式
  • 在 cypress.json 文件中设置

  • 创建一个 cypress.env.json 文件

  • 配置环境变量 CYPRESS_*

  • 在 CLI 中传递为 --env (命令行运行中添加)

  • 在插件中设置一个环境变量

  • 可以通过 test configuration 设置环境变量

cypress.config.ts配置环境变量

在env 键下设置的任何 key:value 都是环境变量

import { defineConfig } from "cypress";

export default defineConfig({
  env:{
    bar:'bar',
    car:'car'
  }
});

读取环境变量

  • 获取全部:Cypress.env()
  • 获取指定key:Cypress.env('bar') Cypress.env().bar
describe('env test',()=>{
    it('env',()=>{
        let env=Cypress.env();
        cy.log(`env:${JSON.stringify(env)}`);
        cy.log(`bar:${env.bar}`);
        cy.log(`car:${Cypress.env('car')}`);
    })
})

Cypress环境变量_第1张图片

cypress.env.json
  • 可以创建自己的 cypress.env.json 文件,Cypress 将会自动检查它
  • 并且里面的值会覆盖 cypress.config.ts中重名的环境变量
  • 它创建在 cypress.config.ts 同级目录下
{
    "bar":"bar2"
}

Cypress环境变量_第2张图片

  • 该文件为专用文件,只存放环境变量
CYPRESS_*
  • 计算机中任何以 CYPRESS_ 或 cypress_ 开头的环境变量都会自动被 Cypress 识别出来
  • 会直接覆盖 cypress.json 和 cypress.env.json 文件中重名的环境变量
  • Cypress在添加环境变量时,会自动去掉 CYPRESS_ 前缀
  • 用户级别环境变量的优先级会高于系统变量

Cypress环境变量_第3张图片

 it('sys env',()=>{
        cy.log(`var1:${Cypress.env().var1}`);
 })

在这里插入图片描述

  • 注意:需要将vscode重启,否则变量为undefind
--env
  • 可以通过命令行将环境变量作为命令行参数传进来
  • 它的优先级最高,会覆盖其他地方设置的重名环境变量
  • 可以为 cypress open 或 cypress run 添加 --env 参数
npx cypress open --env key1=val1,key2=val2
plugins 中声明环境变量
  • 可以使用 plugins 通过 Node 代码动态设置它们,而不必在文件中设置环境变量
  • 具体使用查看后续
test configuration设置环境变量
  • 可以给测试用例或测试用例集单独设置环境变量
  • 会覆盖其他方式设置的环境变量
  • 测试用例级别设置的环境变量优先级更大
   it('test config',{env:{
        'bar':'local bar',
        'car':'local car'
    }},()=>{
        cy.log(`bar:${Cypress.env().bar}`);
        cy.log(`car:${Cypress.env().car}`);
    })

Cypress环境变量_第4张图片

你可能感兴趣的:(Cypress,cypress,自动化测试)