• 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:''
      }
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    通过环境变量来覆盖 baseUrl

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

    CYPRESS_baseUrl=https://www.baidu.com
    
    • 1
    设置环境变量的方式
    • 在 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'
      }
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    读取环境变量

    • 获取全部: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')}`);
        })
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    • 注意:需要将vscode重启,否则变量为undefind
    --env
    • 可以通过命令行将环境变量作为命令行参数传进来
    • 它的优先级最高,会覆盖其他地方设置的重名环境变量
    • 可以为 cypress open 或 cypress run 添加 --env 参数
    npx cypress open --env key1=val1,key2=val2
    
    • 1
    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}`);
        })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

  • 相关阅读:
    基于微信小程序+SSM学生社团管理系统设计
    程序运行时增加语音提示
    限制LitstBox控件显示指定行数的最新数据(2/3)
    【PyTorch深度学习项目实战100例】—— 基于RNN+CNN实现NLP判别新闻真伪 | 第45例
    【云原生之kubernetes实战】在k8s环境下部署jpress开源网站
    centos6/7 SOCKS5 堆溢出漏洞修复(RPM方式)curl 8.4 CVE-2023-38545 CVE-2023-38546
    java计算机毕业设计基于ssm的高校普法系统(源代码+数据库+Lw文档)
    Python+requests+unittest+excel接口自动化测试框架
    hive 问题解决 Class path contains multiple SLF4J bindings
    Redis 有哪些适合的场景?
  • 原文地址:https://blog.csdn.net/qq_52751442/article/details/134533960