Cypress是快速发展的测试自动化框架之一。在你学习Cypress的过程中,你可能会遇到将Cypress测试与CI环境整合的需求。 Jenkins是一个开源的持续集成(CI)服务器,它可以使你的Web应用程序的构建和部署过程自动化。通过在Jenkins中运行你的Cypress测试套件,你也可以将测试作为构建过程的一部分进行自动化。
将LambdaTest添加到公式中,你可以在不同的操作系统和浏览器组合中运行你的应用程序。在这个Cypress Jenkins教程中,我们将深入探讨将Jenkins管道与云Cypress网格整合起来。
那么,让我们开始吧。
Jenkins的优势
Jenkins是一个广泛流行的持续集成(CI)工具。它是免费使用的、用Java编写的开源软件。Jenkins通过提供持续集成服务来提高你的发布敏捷性。你可以通过网络应用服务器触发这些服务,或者简单地使用命令行来加速部署管道和发布迁移活动。此外,Jenkins的流行提供了数以千计的插件来快速跟踪你的生产力。
下面详细介绍了使用Jenkins的一些重要优势。
- Jenkins是开源的,可以免费使用。它是早期创业公司和大公司的首选CI工具,因为它已经开发了很长时间。
- 它是一个丰富的插件生态系统。在发表这篇博文时,有接近1500多个插件可供使用。
- Jenkins可以与流行的云平台集成,如亚马逊EC2、谷歌云、VMWare vSphere、数字海洋等等。
- 任何人都可以编写测试,以尽快发现他们代码中的错误。因此,开发人员不会在大规模的错误重重的集成上浪费时间。
- 问题几乎是立即被发现和解决的,这使软件保持在一个可以随时安全发布的状态。
- 大部分的集成工作是自动化的。因此集成问题较少。在一个项目的生命周期中,它既能节省时间又能节省金钱。
如果你是Jenkins的新手,并希望了解更多关于它的信息,你可以通过这个Jenkins教程来了解什么是Jenkins,以及如何和为什么使用它。
在这个Cypress Jenkins教程的下一节,我们将探讨为什么Cypress Jenkins是你的团队的正确选择。
为什么是Cypress和Jenkins?
Cypress是一个开源的、全功能的、易于使用的测试框架,用于端到端测试。目前,Cypress是懂JavaScript的前端开发人员和自动化测试人员的首选。我们可以使用NPM安装Cypress。而且,我们不需要像Selenium那样安装任何额外的库、依赖项、驱动程序、服务器等。

如上所述,Jenkins是许多试图完成持续集成的初创公司和大公司的预测选择。它提供了一个重要的插件生态系统,加上与Jenkins的简单配置;如果你正在寻找一个开源的CI工具,并且很容易与Cypress进行配置,这(Cypress Jenkins)是你的团队的正确选择。

在这个关于Cypress Jenkins的教程的下一节中,我们将学习如何配置Jenkins来运行Cypress测试。
配置Jenkins以运行Cypress测试
我们将需要NodeJS来执行Cypress。在本节Cypress Jenkins教程中,我们将学习如何在我们的Jenkins环境中安装NodeJS。然而,在此之前,你必须安装Cypress。你可以通过这篇关于开始使用Cypress的博客来在本地机器上安装Cypress。
- 在Jenkins中,进入Manage Jenkins > Manage Plugins > Available Plugins,搜索NodeJS Plugin并安装它。

- 成功安装NodeJs插件后,我们需要将NodeJs加入其中。进入Manage Jenkins > Global Tool Configuration,点击Add NodeJS。然后。
- 为你的NodeJS安装提供一个名称 例如:Node14。
- 点击自动安装。
- 选择一个兼容Cypress的NodeJS版本。
- 为Global npm软件包添加Cypress来安装。
- 我们可以保持其他的配置,因为它是。

现在我们需要创建你的Cypress Jenkins项目。首先,我们必须保持简单;让我们使用一个自由式项目;作为一个自由式项目,我们可以将我们的构建工作分解成几个较小的构建步骤,使其在不同的阶段管理构建时更加舒适。例如,在一个步骤中,构建可能会运行一套功能测试,如果所有可用的测试都成功了,就在第二个步骤中标记构建。
一个Jenkins自由式项目可以和任何用Jenkins管道或Groovy DSL构建的构建作业一样强大和复杂。自由式项目的缺点是,用户必须知道如何编写所有这些动作的脚本,而开发人员必须学习如何管理这些脚本。
- 在Jenkins中,点击新项目,提供一个项目名称,并选择自由式项目。

- 由于我们的Git项目在源代码管理中,添加你的Git URL和Cypress项目的凭证。如果你不使用Git,我鼓励你试试。Git的速度快如闪电;我们说的是每条命令只需几秒钟;它很快就能为你的工作时间增加。记住,一个庞大的社区往往是一个优势,因为一个生态系统是围绕着这个系统的。
- 现在我们需要切换到构建环境部分。在这里我们将找到并选择选项,将Node和npm bin/文件夹提供给PATH。

这是我们设置我们的NodeJS环境来运行Cypress的地方。

- 如果你还记得,我们之前添加了一个NodeJS安装。我们将在NodeJS安装下拉菜单中看到我们提供的名称。选择它,然后我们可以保留其他的配置。
我们都准备好了;别忘了添加我们的Cypress命令来执行脚本。
在云网格上运行端到端的Cypress测试。现在就试试LambdaTest吧
配置Jenkins流水线
管线是一系列以特定顺序相互连接的事件或任务。通俗地说,Jenkins管道是一组模块或插件,能够在Jenkins内实施和整合持续交付管道。
Jenkins管道有一个可扩展的自动化系统,通过管道中使用的特定领域语言(DSL)构建基本或复杂的 "模板 "发布管道。例如,声明式管道中的阶段可以有一个阶段部分,包含一个要按顺序运行的嵌套阶段列表。
Jenkins管道中的概念如下。
- 管道 - 它是为应用程序的构建、测试和交付而执行的代码,是持续交付的代码状态的一组指令。
- 节点- 它是Jenkins运行的机器或系统。一个节点块是一个流水线语法的脚本。
- 阶段- 在这里,我们可以描绘Jenkins管道的过程。它由一系列的步骤组成:构建、测试和部署。在早期版本的Declarative Pipeline中,并行运行大块Pipeline代码的唯一方法是使用步骤块内的并行步骤,用于阶段)。
- 步骤--它是阶段中的一个单一步骤;例如,从一个单一步骤中构建或测试或部署。
Jenkins管道的主要优点是将许多任务自动化,使CI/CD管道任务可靠、高效、可重复、高质量。
我们可以为这个Cypress Jenkins教程找到Pipeline的Jenkins文件,如下所示。
- 通过进入Jenkins -> 新项目为Pipeline创建一个新项目。Jenkins -> 选择管线。

- 向下滚动到管线选项。并根据你的Git repo进行更新。

- 我们的Jenkins文件将包含我们的配置,然后我们可以看到我们的结果。

到目前为止,我们已经看到了如何配置Jenkins管道。在这个Cypress Jenkins教程的下一节中,我们将深入探讨将你的Cypress Jenkins管道与Cypress云网格整合。
如何将你的Cypress Jenkins管道与Cypress云网格集成?
Jenkins管道,也被称为 "管道",提出了一套插件,以协助将我们的持续交付管道整合到Jenkins中。Jenkins Pipeline在Pipeline DSL(特定领域语言)语法的帮助下做到了这一点,即使是最复杂的交付管道也能方便地建模。
用LambdaTest配置你的Jenkins管道
按照以下步骤将LambdaTest与Jenkins配置起来。
- Jenkins 2.X或最新版本。
- 一个具有root权限的Jenkins用户。
- LambdaTest认证凭证。
- 留意你的LambdaTest认证凭证,即你的LambdaTest用户名和访问密钥。你需要将它们设置为你的环境变量。你可以通过点击帮助按钮周围的密钥图标,从你的LambdaTest自动化仪表板上检索它们。
设置Jenkins
在本节Cypress Jenkins教程中,我们将探讨设置Jenkins的步骤。
- 通过进入Jenkins -> 新项目,为Pipeline创建一个新项目。Jenkins -> 选择管线。

- 向下滚动到Pipeline选项。并根据你的Git repo进行更新。

- 我们的Jenkinsfile将包含我们的配置。

- cypress:lambda "任务将由Jenkins管道中的 "e2e测试 "步骤执行。所以现在我们可以在Jenkins中按下 "Build Now "按钮,得到以下结果。

- 当检查构建的控制台输出时,我们可以验证Cypress测试的运行。

从上面的图片中我们可以注意到,我们的构建被成功执行,测试被上传到我们的LambdaTest仪表板。

如何在云网格上执行Cypress并行测试?
我们可以使用像LambdaTest这样的Cypress云网格,它在40多种浏览器和操作系统上提供自动化的跨浏览器测试,并使用Cypress并行测试来加快测试执行,帮助执行我们的Jenkin管道。此外,这将有助于提高我们的整体测试覆盖率,因为我们可以使用相同的测试脚本覆盖不同的组合,从而带来更好的产品质量。
您还可以订阅LambdaTest YouTube频道,并随时了解围绕自动化浏览器测试、Cypress测试、CI/CD等的最新教程。
要开始使用Cypress e2e测试,请按照下面提到的步骤进行。
- 在你的机器上安装LambdaTest Cypress CLI。触发以下命令进行安装。
npm install -g lambdatest-cypress-cli
- 安装完成后,使用下面的命令设置配置。
lambdatest-cypress init
- 一旦命令完成,在项目文件夹中就会创建lambdatest-config.json。接下来,从LambdaTest配置文件部分输入LambdaTest凭证。
"lambdatest_auth": {
"username": "<Your LambdaTest username>",
"access_key": "<Your LambdaTest access key>"
- 下面是你如何在lambdatest-config.json中配置所需的浏览器和操作系统组合的方法。
{
"lambdatest_auth": {
"username": "",
"access_key": ""
},
"browsers": [
{
"browser": "MicrosoftEdge",
"platform": "Windows 10",
"versions": [
"latest"
]
},
{
"browser": "Chrome",
"platform": "Windows 10",
"versions": [
"latest"
]
},
{
"browser": "Firefox",
"platform": "Windows 10",
"versions": [
"latest"
]
}
],
- JSON文件中的run_settings部分包含所需的Cypress测试套件能力,包括Cypress_version、build_name、并行会话的数量等。
"run_settings": {
"cypress_config_file": "cypress.json",
"build_name": "build-Cypress-test",
"parallels": 5,
"specs": "./cypress/integration/e2e_tests/*.spec.js",
"pluginsFile": true,
"ignore_files": "",
"npm_dependencies": {
"cypress": "9.0.0",
"@cypress-audit/pa11y": "^1.3.0",
"cypress-plugin-snapshots": "^1.4.4",
"cypress-visual-regression": "^1.6.2"
},
"feature_file_suppport": true
},
- JSON文件中的Tunnel_settings可以让你通过一个基于SSH的集成隧道将你的本地系统与LambdaTest服务器相连。一旦这个隧道建立起来,你就可以在LambdaTest上测试Cypress目前支持的所有浏览器上的本地托管页面。
"tunnel_settings": {
"tunnel": false,
"tunnelName": null
}
使用LambdaTest,我们可以并行地运行我们的测试,减少执行时间。并行测试不是依次一个一个地运行测试,而是允许同时运行多个测试。此外,这种方法还可以在各种浏览器、设备和操作系统上平行地执行测试。
不使用Cypress Cloud Grid(比较e2e测试时间)。

使用Cypress Cloud Grid并运行多个操作系统和浏览器(比较e2e测试时间)。

要查看测试性能指标,请导航到LambdaTest分析仪表板。测试概览将提供一个与稳定行为一致的测试快照。你可以看到所有的测试结果,它们的状态,以及在失败和失败的细分区域的测试通过或失败的总数量。
如果你是一名开发人员或测试人员,Cypress 101认证将使你准备好更快、更有信心地编写测试。你将学习Cypress端到端测试的基础知识,并对如何编写更好的测试有一个清晰的认识。
最后的思考
最后,我们已经介绍了Jenkins的重要性,以及如何将其与我们的Cypress项目集成,以有效地运行我们的测试并实现持续集成的目标。使用Jenkins来运行我们的测试是非常有效的,而且测试结果可以通过完整的日志进行可视化。它有助于完成整个软件开发生命周期,从开发、部署、测试、监控和发布。
Jenkins支持各种插件来实现项目的要求。它还通过电子邮件不断提醒用户有关构建的稳定性。谢谢你阅读这个Cypress Jenkins教程。
祝您捉虫愉快!
常见问题(FAQ)
Cypress能与Jenkins一起工作吗?
是的。将Cypress与Jenkins设置在一起的最佳方式是安装和配置官方的cypress-jenkins插件。它允许你在创建新的构建时或在每个拉动请求上从Jenkins运行Cypress测试。
Cypress适合E2E测试吗?
Cypress是一个流行的端到端测试框架,允许在JavaScript中创建完整的测试套件。它支持Karma、Protractor和Jest等测试运行器,可用于测试任何可在浏览器中运行的网络应用,包括Node应用。

