Skip to main content
Cypress云服务免费试用

数据存储与控制

info
你将学习到
  • Cypress Cloud存储了哪些数据以及如何使用这些数据
  • 如何控制发送到Cypress Cloud的数据
  • 如何在截图和视频中屏蔽数据
  • 如何控制在Cypress命令日志和网络请求中显示的内容
caution

请参阅Cypress Cloud使用条款和我们的安全与合规指南,了解关于Cypress Cloud合理使用、数据存储和安全的详细信息。

数据类型

当您通过cypress run运行Cypress并传递--record标志时,以下数据会存储在Cypress Cloud中:

  • 终端标准输出
  • 测试结果
  • 测试定义
  • Cypress配置(不包括Cypress环境变量)
  • 截图
  • 视频
  • 与CI和git信息相关的操作系统环境变量

当启用测试回放捕获时,以下额外数据将被发送到Cypress Cloud。查看禁用测试回放的指南

  • 被测应用的渲染DOM和CSS样式
  • 命令日志中显示的Cypress命令和事件
  • 被测应用内的网络流量
  • 浏览器控制台日志

Cypress Cloud不会捕获与被测应用代码或与项目关联的任何仓库代码相关的内容。

当启用Cloud AI时,测试内容可能会与会话绑定的AI模型共享以增强测试管理体验。您的数据不会用于训练AI模型,也不会在客户之间共享。

您作为客户拥有并负责您的测试内容。我们相信客户会做出关于测试数据适当性的决策,并避免使用PII、PHI或其他类型的受保护信息。Cypress会采取商业上合理的努力来保护提供给Cypress Cloud的信息的机密性。

数据控制

我们理解控制发送到Cypress Cloud的数据对用户很重要。Cypress提供了多种方式来控制发送到Cypress Cloud的数据。

如果您需要更精细地控制发送到Cypress Cloud的数据,请联系我们讨论您的需求。

项目访问控制

Cypress Cloud提供项目可见性控制。您可以将项目设置为公开或私有。查看项目访问控制设置

将项目设置为私有意味着只有明确邀请到组织的用户才能查看项目、其运行以及Cypress捕获的任何数据。

测试回放控制

禁用测试回放

您可以按照本指南按项目禁用测试回放数据捕获。这意味着项目中无法查看或调试测试回放。这将阻止Cypress Cloud捕获以下数据:

  • 被测应用的渲染DOM和CSS样式
  • 命令日志中显示的Cypress命令和事件
  • 被测应用内的网络流量
  • 浏览器控制台日志

截图控制

在截图中屏蔽元素

Cypress提供选项来屏蔽截图中的一组元素。查看截图API文档这允许您屏蔽截图中的特定元素,使其不会在本地保存的截图或对Cypress Cloud运行有访问权限的用户中可见。

支持文件中添加控制以设置所有截图的默认屏蔽选项。

before(() => {
Cypress.Screenshot.defaults({
// 屏蔽所有带有'mask-cy'属性的元素
blackout: ['mask-cy'],
})
})

为特定截图添加控制以屏蔽特定元素。

it('admin page loads', () => {
cy.visit('/admin')
cy.screenshot({
blackout: ['.user-name'],
})
})

从截图中移除Cypress命令日志

Cypress提供选项隐藏截图中的Cypress命令日志,使该区域的任何信息都不会被捕获在截图中。查看cy.screenshot()命令获取更多信息。

支持文件中添加控制以设置所有截图的默认捕获选项。

before(() => {
Cypress.Screenshot.defaults({
capture: 'viewport', // 或 fullPage
})
})

为特定截图添加控制以仅捕获被测应用。

it('sign in page', () => {
cy.visit('/sign-in')
cy.screenshot({
capture: 'viewport', // 或 fullPage
})
})

视频控制

禁用视频上传

您可以通过本指南删除在传递video: true时录制的视频,以控制上传到Cypress Cloud的内容。

Cypress命令日志控制

关闭Cypress命令日志渲染

您可以通过在运行Cypress测试时通过CLI传递--no-runner-ui来禁用显示整个Cypress命令日志以及被测应用(AUT)控制,以防止所有测试内容显示并记录在任何截图或视频中。查看Cypress命令行选项。这意味着AUT将是运行测试时唯一渲染的内容,因此也是截图和视频中唯一捕获的内容。

请注意,当设置--no-runner-ui时,Cypress命令日志中的数据仍会发送到Cypress Cloud以生成并显示在测试回放中(如果启用)。查看禁用测试回放获取更多信息。

在Cypress命令日志中屏蔽数据

有多种方法可以在Cypress命令日志中屏蔽数据。请注意,当使用这些策略时,测试定义中的数据仍会发送到Cypress Cloud。

为Cypress命令设置log: false

您可以在测试中为Cypress特定命令传递log: false选项,以防止数据在Cypress命令日志中可见显示,并防止其显示在任何捕获的截图或视频中。

禁用XHR/Fetch请求日志记录

默认情况下,Cypress会记录与任何cy.intercept()匹配的所有请求,以及所有XMLHttpRequests和fetch请求。您可以使用cy.intercept()通过在第二个参数中传递{ log: false }来禁用这些日志。查看cy.intercept()命令获取更多信息。

before(() => {
// 禁用Cypress默认记录所有XMLHttpRequests和fetch请求的行为
cy.intercept({ resourceType: /xhr|fetch/ }, { log: false })
})
在Cypress命令日志中屏蔽Cypress命令

用户可以通过使用如下自定义命令在Cypress命令日志中屏蔽密码。查看我们关于屏蔽.type()命令内容的指南

Cypress命令日志显示密码被屏蔽为星号的type命令

网络请求控制

Cypress允许用户阻止来自指定主机的请求。查看我们的blockHosts配置指南

开发者工具网络标签显示被阻止的主机

Cloud AI控制

Cloud AI默认对所有Cloud计划的用户启用。

组织管理员和所有者可以从组织设置中为整个组织启用和禁用AI功能。

显示Cypress AI组织设置的图片

另请参阅