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

Cypress Cloud 常见问题

一般问题

什么是Cypress Cloud?

Cloud截图

Cypress Cloud 让您能够访问已记录的测试——通常是在从您的CI提供商运行Cypress测试时——并为您提供测试运行期间的详细洞察。

您可以在这里了解更多。

Cypress会记录哪些内容?

Cypress会捕获以下内容:

当您通过cypress run命令并传递--record标志运行Cypress时,以下数据会被发送到Cloud:

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

您可以选择在发送到Cloud之前删除视频或截图,这样这些内容就不会被捕获。

当启用测试回放捕获时,以下额外数据会被发送到Cloud。您可以禁用捕获这些数据。

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

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

这与CI有何不同?

Cypress Cloud是您CI提供商补充,扮演完全不同的角色。

它不会替换或改变与CI相关的任何内容。您仍然会在CI提供商中运行Cypress测试。

Cypress Cloud与CI提供商的区别在于,您的CI提供商不知道Cypress进程内部发生了什么。它仅根据进程是否具有大于0的退出代码来判断进程是否失败。

Cypress Cloud为您提供运行期间的详细细节。结合使用CI提供商和Cypress,可以提供调试测试运行所需的洞察。

当运行发生且测试失败时,您无需检查CI提供商的stdout输出,而是可以登录Cypress Cloud,查看stdout以及测试运行的截图和视频。问题应该会立即清晰可见。

什么算作测试结果?

哪个定价层级最适合您,取决于您的组织每月记录的测试数量。

当调用cypress run并传递--record标志同时提供记录--key时,测试会被记录。这意味着您的测试运行数据正在被“记录”到Cypress Cloud。

我们每次调用it()函数都算作一个测试。因此,通常每个spec文件中会有多个测试记录,并且一个运行中可能有多个spec文件。只有通过和失败的测试会被计数。待定和跳过的测试不会被计数。

您始终可以从组织的计费与使用情况页面查看已记录的测试数量。

什么算作用户?

用户是指任何登录Cypress Cloud并被邀请查看和审查组织测试结果的人。

费用是多少?

请参阅我们的定价页面了解更多详情。

公共项目和私有项目有什么区别?

公共项目意味着任何人都可以查看其记录的运行。这类似于Github、Travis或CircleCI上的公共项目的处理方式。任何知道您的projectId的人都可以查看公共项目的记录运行、截图和视频。

私有项目意味着只有您明确邀请到组织用户才能查看其记录的运行。即使有人知道您的projectId,除非您邀请了他们,否则他们将无法访问您的运行。

达到测试结果限制后会发生什么?

当达到限制时,使用--record标志运行的测试将正常运行,但并行化将被禁用,新的测试结果将隐藏在仪表板中,直到您的计划升级或新的使用周期开始。使用周期每月重置一次。

为了避免服务中断,我们建议您查看使用情况并选择满足您需求的计划。您可以通过以下方式操作:

  1. 登录Cypress Cloud
  2. 选择您的组织
  3. 导航到计费与使用情况选项卡
  4. 查看组织的使用情况
  5. 向下滚动并在您选择的计划下选择升级

如果我降级账户会怎样?

降级您的账户不会导致无法访问Cypress Cloud。

但是,这将使您的Cypress Cloud账户受到新计划的限制。例如,降级到_Starter_计划将限制数据保留时间为30天,每个计费周期的测试结果为500。

我可以选择不使用Cypress Cloud吗?

当然可以。Cypress Cloud是与Cypress应用分开的服务,始终是可选的。我们希望您会发现它的巨大价值,但它与运行测试的能力无关。

您始终可以在CI中使用cypress run而不使用--record标志运行测试,这样不会与我们的外部服务器通信,也不会记录任何测试结果。

使用Cypress Cloud

projectId有什么用?

projectId是一个6字符的字符串,帮助在设置测试记录后识别您的项目。它由Cypress生成,通常可以在您的Cypress配置中找到。

const { defineConfig } = require('cypress')

module.exports = defineConfig({
projectId: 'a7bq2k',
})

更多详情请参阅Cypress Cloud文档中的识别部分。

什么是记录密钥?

_记录密钥_是一个GUID,由Cypress在您设置测试记录后自动生成。它帮助识别您的项目并验证您的项目是否被允许记录测试。

您可以在_设置_选项卡中找到项目的记录密钥。

配置选项卡中的记录密钥

更多详情请参阅Cypress Cloud文档中的识别部分。

如何记录我的测试?

  1. 首先设置项目记录
  2. 然后记录您的运行

记录测试后,您将在Cypress Cloud和Cypress应用的运行选项卡中看到它们。

我可以从Cypress Cloud删除运行吗?

您可以归档运行,这样它就不会显示在运行列表或分析中。

**注意:**归档记录的运行不会影响当月计费的测试记录和计数。

我可以自行托管Cypress Cloud数据吗?

不可以。目前没有自托管的Cypress Cloud版本。

为什么测试并行化基于spec文件而不是单个函数?

Cypress的测试并行化确实基于spec。对于每个spec,Cypress会搭建新的运行上下文,从某种意义上隔离每个spec文件与之前的任何spec文件,并确保下一个spec有一个干净的状态。对每个_单独_测试这样做会非常昂贵,并显著减慢测试运行速度。

Spec文件的持续时间也比单个测试的时间更有意义和一致性,我们可以根据之前记录的平均移动时间对spec进行排序。这在负载均衡快速完成单个测试时用处不大。

因此,为了更好地负载均衡spec,您需要更多具有大致相同运行时间的spec文件。否则,单个长时间运行的测试可能会限制所有测试完成的速度以及运行完成的速度。由于在每个spec文件之前启动新的测试执行上下文并在之后编码和上传视频,使spec文件运行时间短于大约10秒也是徒劳的——因为Cypress的开销会吃掉任何时间节省。

我的CI设置基于Docker,但非常定制。如何负载均衡我的测试运行?

即使您的CI设置与我们有的CI示例运行我们的示例项目非常不同,您仍然可以利用Cypress Cloud的测试负载均衡。找到在您的容器之间相同但在运行之间不同的变量。例如,可以是一个名为CI_RUN_ID的环境变量,您在创建容器运行Cypress时设置。您可以通过CLI参数--ci-build-id在每个容器中启动Cypress时传递此变量:

cypress run --record --parallel --ci-build-id $CI_RUN_ID

作为参考,这里是我们从流行的CI提供商中提取的变量,对于大多数提供商,有一些变量在并行运行的多个容器中设置为相同的值。如果没有共同的变量,尝试使用提交SHA字符串。假设您不会对同一提交多次运行相同的测试,这可能足够完成任务。

我使用限制性VPN。必须允许哪些子域名在我的VPN上才能正常工作?

如果您在限制性VPN环境下运行测试,需要允许以下URL以确保Cypress能与Cypress Cloud有效通信。

需要放行的URL如下:

  • https://api.cypress.io - Cypress API
  • https://assets.cypress.io - 资源CDN(组织徽标、图标、视频、截图等)
  • https://authenticate.cypress.io - 认证API
  • https://capture.cypress.io - Cypress测试回放
  • https://s3.amazonaws.com/capture.cypress.io - 从测试运行器上传Cypress测试回放
  • https://cloud.cypress.io - Cypress Cloud
  • https://docs.cypress.io - Cypress文档
  • https://download.cypress.io - Cypress二进制文件CDN下载
  • https://on.cypress.io - 链接跳转的URL缩短服务

如果您使用GitHub Enterprise或GitLab for Enterprise(自托管版),可能还需要将以下版本控制IP加入白名单:

  • 3.211.102.119 - 专用IP
  • 18.213.72.78 - 专用IP
  • 35.169.145.173 - 专用IP
  • 44.199.152.70 - 专用IP
  • 52.70.95.89 - 专用IP

Cypress Cloud账户

我的组织ID是什么?

您的组织ID是与您的组织关联的唯一标识符。查找ID的说明在Cypress Cloud指南中。

如果我无法访问我的Cypress Cloud账户怎么办?

  1. 如果您尚未注册,请参阅通过邀请注册说明。

  2. 尝试重置密码。如果从未收到电子邮件,请尝试以下操作:

    • 尝试使用Google或GitHub登录
    • 检查垃圾邮件和垃圾文件夹
    • 验证是否为正确的电子邮件地址

如果上述故障排除步骤未解决问题或涉及SSO,请联系支持

我可以删除我的Cypress账户吗?

您可以从您的Cypress Cloud个人资料删除您的Cypress账户。删除账户无法撤销!删除Cypress账户后,账户中的所有关联数据将被永久删除。

测试回放

什么是测试回放?

测试回放使您和您的团队能够更快地排查和调试失败的测试。升级到Cypress v13后,新功能将自动记录所有浏览器事件,并允许您“回放”被测应用的样子。

将时钟倒回到应用程序测试执行的任何时间点,并直接与测试交互,就像它们在CI中发生时一样。调试复杂问题就像它们第一次发生时您在场一样。您可以:

  • 检查DOM在测试失败的确切时间,快速调试测试
  • 查看重要的调试维度如网络请求、控制台日志等
  • 节省在本地重现CI错误的时间——回放测试就像它们在CI中发生一样
测试回放演示

Cypress测试回放与其他“回放”服务有何不同?

_session_回放服务(LogRocket、FullStory、DataDog等)与Cypress测试回放之间有重要区别。在会话回放中,用户操作在应用程序使用时被捕获,并以可回放的格式(通常是视频或拼接的DOM快照)返回。这些是收集产品洞察(如用户行为,每次会话)的宝贵工具。

Cypress测试回放捕获CI中测试运行的每个细节。请记住,这些测试是在虚拟机上以无头方式运行的,没有渲染UI。有时测试会出错或失败,表明应用程序存在问题。由于Cypress Cloud监控CI测试套件的健康状况,每次测试回放都提供了一个机会,可以回溯时间分析并利用时间旅行调试、网络请求、控制台日志、JavaScript错误和元素渲染来直接解决问题。这对开发人员和团队生产力非常有价值。不再浪费数小时在本地机器上重现CI问题!

测试回放费用是多少?

免费。它包含在所有Cypress Cloud计划中。

要开始使用Cypress Cloud, 注册即可享受2周免费试用 - 包含所有 Cypress Cloud高级功能以及充足的测试结果, 让您体验Cypress Cloud的强大功能!

我可以在不同浏览器记录的测试中使用测试回放吗?

测试回放利用Chrome DevTools协议(CDP),因此目前仅支持基于Chromium的浏览器(Chrome、Edge和Electron)。

在Firefox或WebKit(Safari)中运行的测试将禁用测试回放,并显示一条消息,说明它仅在Chromium上可用。您仍然可以通过其他浏览器在单独的运行组中记录和捕获测试工件(截图、视频和CI日志)。

我可以回放历史Cypress Cloud运行中的测试吗?

测试回放可用于使用Cypress v13及更高版本记录的测试。在此版本之前记录的测试将不会在Cypress Cloud中启用测试回放。您仍然会拥有在v13之前测试运行中收集的任何工件。

我可以为特定的单个测试启用或禁用测试回放,还是它是一个全局设置?我可以配置我的设置,使测试回放仅对失败的测试重试启用吗?

目前,用户只能通过Cypress Cloud中的项目级设置选择退出测试回放。目前没有本地选择退出的选项。

我可以分享我的测试回放吗?

可以!您可以与任何有权查看Cypress Cloud运行的团队成员(如QA、营销、设计等)分享测试回放。打开回放,从浏览器地址栏复制URL并传递。

测试回放会向文件系统写入任何资产吗?

会,但它们存储在临时目录中,并在运行后删除。没有需要.gitignore的内容。

网络选项卡功能是否仅在测试回放中可用?

Cypress Cloud中测试回放的开发者工具中的所有数据(包括网络事件)在本地运行测试时已经通过浏览器的内置开发者工具(如Chrome DevTools)在Cypress应用中可用。在审查CI中发生的测试运行时,您可以在Cypress Cloud的测试回放中查看网络事件。

我可以在开发者工具面板的控制台视图中console.log()数据吗?

可以。这会显示来自被测应用或您的spec文件中的控制台日志。您可能需要使用JSON.stringify(Object)来显示深度嵌套的数据。

Cloud AI

什么是Cloud AI?

Cloud AI是Cypress Cloud中可用的AI功能集合。这些功能不断被添加到Cloud中,以改进可用的洞察范围,并使完成任务更加容易。

当前的Cloud AI功能包括:

  • 测试意图摘要 - 无需阅读每个命令即可理解测试的作用
  • (即将推出) 测试错误上下文 - 用简单语言解释测试失败的原因
  • 高级解决方案 UI覆盖率测试生成
    • 直接从代码审查中发现的覆盖率差距生成测试

所有Cloud AI功能默认启用吗?如何关闭它们?

Cloud AI功能在所有Cloud计划中默认对所有用户启用,UI覆盖率测试生成仅限于UI覆盖率用户。

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

显示Cypress AI组织设置的图片

Cloud AI费用是多少?

Cloud AI功能包含在现有计划中,无需额外费用:

我的数据如何处理?

查看Cypress AI安全了解您的数据处理方式。

总结:

  • 您的数据_不_用于训练AI模型
  • 所有数据在Cypress管理的Cloud基础设施中处理和存储
  • 与AI模型共享的所有信息都是会话绑定的
  • 数据_不_在客户之间共享
  • 与您的Cypress Cloud账户相关的个人身份信息(PII)从不与AI模型共享
  • 测试内容可能与AI模型共享,作为客户,您有责任决定测试中使用的数据的适当性,并避免使用PII、PHI或其他类型的受保护信息。

Cypress是否使用我的数据训练模型?

不,您的数据不用于训练模型。

目录