本文共 3386 字,大约阅读时间需要 11 分钟。
如果想从头学起Cypress,可以看下面的系列文章哦
不要在测试中进行硬编码(写死,常量),需要改的时候需要动代码,比如:
cy.request('https://api.acme.corp') // 这将在其他环境中无法使
使用环境变量后
cy.request(Cypress.env('EXTERNAL_API')) // 指向动态环境变量
当不同环境运行时,如果需要访问不同的 URL 我们只需要改环境变量即可了,而不用动到代码
cy.visit("")// 错误写法 cy.visit()
记住调用 visit 或 request 时,再怎么样也要传个空字符串 "" ,不能啥都不填哦
即使配置了 baseUrl ,我们也可以通过环境变量来覆盖它
CYPRESS_baseUrl=https://staging.app.com cypress run
----------------------------->>>>>>>>>>>>>>>>>>> 点击右侧目录即可跳转
在 cypress.json 的 env 键下设置的任何 key:value 都是环境变量
// 打印所有环境变量Cypress.env()// 打印某个环境变量的值Cypress.env("foor")
优点 | 缺点 |
适用于需要源码托管(git)并在所有计算机保持相同的值 | 只适用于在所有计算机上应该有相同的值 |
如果将cypress.env.json 添加到.gitgnore文件中,那么文件中的值对于每个开发人员的计算机都是不同的
在 cypress.json 中也有一个 key 的环境变量,所以在 cypress.env.json 的 key 的值覆盖了它的值
优点 | 缺点 |
专用文件,只存放环境变量 | 需要单独多处理一个新的文件 |
可以从其他构建过程中生成此文件 | 可能会过度干预 1 或 2 个环境变量 |
不同计算机的环境变量可能不同 | |
支持嵌套字段,如:{ testUser: { name: '...', email: '...' } } |
在 Cypress 安装目录下,cmd敲
yarn cypress:open --env host=poloyy.com,key=命令行参数环境变量
或
yarn cypress:run --env host=poloyy.com,key=命令行参数环境变量
优点 | 缺点 |
不需要对文件或配置项进行任何更改 | 使用 --env 并不友好 |
简单明了的设置环境变量 | 不支持嵌套字段 |
优先级最高,覆盖其他形式设置的环境变量 | |
允许不同机器之间存在动态的值 |
优点 | 缺点 |
最大程度的灵活性 | 需要使用Node编写知识 |
可以根据需要管理配置 | 更具挑战性 |
context('test configuration 设置环境变量', { env: { 'key': '测试配置项', 'host': 'www.poloyy.com' }}, function () { it('test configuration 测试用例设置', function () { cy.log(`环境变量有${JSON.stringify(Cypress.env())}`) cy.log(`key 环境变量的值是${JSON.stringify(Cypress.env("key"))}`) cy.log(`host 环境变量的值是${JSON.stringify(Cypress.env("host"))}`) }); it('test configuration 测试用例设置2', { env: { 'key': '测试用例级别配置项', 'host': 'edit.poloyy.com' } }, function () { cy.log(`环境变量有${JSON.stringify(Cypress.env())}`) cy.log(`key 环境变量的值是${JSON.stringify(Cypress.env("key"))}`) cy.log(`host 环境变量的值是${JSON.stringify(Cypress.env("host"))}`) });})
测试用例级别设置的环境变量优先级更大
更多 test configuration 的使用可以看这篇文章:待更新
转载地址:http://yekfz.baihongyu.com/