- Cypress 教程
- Cypress - 首页
- Cypress - 简介
- Cypress - 架构和环境搭建
- Cypress - 测试运行器
- Cypress - 创建第一个测试
- Cypress - 支持的浏览器
- Cypress - 基本命令
- Cypress - 变量
- Cypress - 别名
- Cypress - 定位器
- Cypress - 断言
- Cypress - 文本验证
- Cypress - 异步行为
- Cypress - 处理 XHR
- Cypress - jQuery
- Cypress - 复选框
- Cypress - 标签页
- Cypress - 下拉菜单
- Cypress - 警报框
- Cypress - 子窗口
- Cypress - 隐藏元素
- Cypress - 框架
- Cypress - 网页表格
- Cypress - 鼠标操作
- Cypress - Cookie
- Cypress - Get 和 Post 请求
- Cypress - 文件上传
- Cypress - 数据驱动测试
- Cypress - 提示弹出窗口
- Cypress - 仪表盘
- Cypress - 截图和视频
- Cypress - 调试
- Cypress - 自定义命令
- Cypress - Fixtures
- Cypress - 环境变量
- Cypress - Hooks
- Cypress - JSON 文件配置
- Cypress - 报告
- Cypress - 插件
- Cypress - GitHub
- Cypress 有用资源
- Cypress - 快速指南
- Cypress - 有用资源
- Cypress - 讨论
Cypress - JSON 文件配置
Cypress 配置由一些键值对组成,这些键值对适用于框架中的所有测试。Cypress 默认配置在测试运行器窗口的“设置”选项卡 ->“配置”(展开)中提供。
如果我们进一步查看同一窗口,我们将看到 Cypress 提供的多个配置的现有值,例如超时、环境变量、文件夹路径等。
如下所示:
如果我们进一步查看同一窗口,我们将看到 Cypress 提供的多个配置的现有值,例如超时、环境变量、文件夹路径等。
如下所示:
覆盖默认值
要覆盖 cypress.json 文件中的默认配置,我们必须指定键值对。
在 cypress.json 中实现
覆盖 JSON 文件默认值的实现如下:
{ "baseUrl" : "https://www.google.com/" }
这里,键是 baseUrl,值是 https://www.google.com/。再次运行测试后,**更改将反映在全局配置中**,如下所示:
实际测试的实现
覆盖 JSON 文件默认值的实际测试实现如下:
describe('Tutorialspoint', function () { // test case it('First Test', function (){ // launch application from configuration cy.visit("/") }); });
执行结果
输出如下:
执行日志显示 baseUrl 已从 cypress.json 文件中获取,并且适用于框架中的所有测试。
覆盖默认配置
我们可以从测试脚本中覆盖默认配置,这些配置适用于测试用例中的单个测试步骤,而不是整个框架。
这是借助 Cypress 中的 config 命令实现的。
例如,如果我们想增加特定测试步骤的默认超时时间,则实现如下:
//set default time out to nine seconds from following steps in test Cypress.config('defaultCommandTimeout',9000) landPage.selectUser().click()
同时,如果在 cypress.json 文件中将 defaultCommandTimeout 值设置为 7 秒,则 Cypress 将优先使用应用于测试步骤的超时时间(即 9 秒)。
最后,它优先考虑默认配置。
禁用覆盖默认配置
我们可以禁用从 cypress.json 覆盖默认配置的功能。
cypress.json 中的配置如下:
{ "defaultCommandTimeout" : "9000" }
要禁用上述配置,请运行以下命令:
npx cypress open --config-file false
运行上述命令后,测试运行器窗口的“设置”选项卡将显示 config 标志设置为 false。
此外,defaultCommandTimeout 设置为 4 秒,这是由默认配置设置的,而不是由 cypress.json 中的 9 秒值覆盖。