关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。
在本文中,您将了解有关 CircleCI、构建 CircleCI 管道以及在 Selenium Grid 上使用 CI/CD 管道执行自动化测试的更多信息。
在这个数字时代,持续集成和持续部署与软件开发和敏捷方法紧密结合。因此,组织每分钟都会部署最新版本的软件产品,以确保获得最大的竞争优势。
您会同意,为最终用户提供产品的速度越快,竞争优势就越大!然而,当产品交付必须无错误地完成以便用户体验不会减少时,复杂性就会出现。这就是自动化测试发挥主要作用的地方,当它与部署管道结合时,整个质量保证过程变得万无一失和无缝。
有各种工具,如 Jenkins、Travis CI、TeamCity 等,用于为这些 CI/CD 流程做出贡献。然而,CircleCI 与 GitHub、Gitlab 等流行的版本控制系统集成得很好。它还提供了易于使用的界面并支持多个库,从而使其更易于采用。您还可以在顶级 CI/CD 工具比较中阅读我们对 CircleCI 与其他著名 CI/CD 工具的详细比较。
CircleCI 自动化应用程序的构建、测试和部署,从而加快流程并实现团队之间的无摩擦协作。这让开发人员可以放心地快速发布源代码,实现整个 CI/CD 过程的自动化。CircleCI 是最适合敏捷开发环境的现代 CI 云服务器。这也让我们意识到做出战略选择、保持响应并做出可持续的决策,以帮助开发人员和工程师更聪明地工作。
在本文中,您将了解有关 CircleCI、如何构建 CircleCI 管道以及如何在 Cloud Selenium Grid 上使用 CI/CD 管道执行自动化测试的更多信息。
CircleCI 的基本特征
CircleCI 可以连接到 GitHub 或 Bitbucket,然后您可以从那里自动化整个 CI/CD 过程,从构建到部署,包括测试。以下是 CircleCI 的主要特点:
- 您可以通过 GitHub 或 Bitbucket 在 CircleCI 门户上注册。这会自动与您的 GitHub/Bitbucket 帐户集成,并让您选择一个存储库来设置 CircleCI 管道项目。不需要不必要的进口。
- 将存储库作为项目添加到 CircleCI Enterprise 后,添加的每个新代码或新提交都会触发新构建。
- 在每个新构建中,都会发送有关构建成功(或失败)的通知。这是通过集成了 Slack 和 IRC 通知的 webhooks 完成的。
- 您还可以使用 CircleCI 在各种环境中部署代码,例如 AWS S3、AWS EC2 容器服务 (ECS)、Heroku、Microsoft Azure 等。
- CircleCI 还提供代码覆盖率结果,这些结果可以在任何添加了报告库的项目的详细信息页面上轻松获得。
- 可以通过与 CircleCI 的 SSH 连接来尝试云服务部署。
- CircleCI 还为您提供 API 服务以与不同的作业配置集成。
- 您还可以从 Jenkins、AWS、Microsoft Azure 等无缝迁移到 CircleCI。
CircleCI 相对于其他 CI/CD 工具的优势
挑选最好的 CI/CD 工具始终是开发人员、工程师、测试人员和 QA 专家的一项任务。CircleCI 跨越了这个任务,为您提供更快的性能和优化的构建。此外,它还通过智能自动化提高了工程团队的工作效率和时间效率。以下是 CircleCI 相对于其他流行的 CI/CD 工具的主要优势:
- CircleCI 每天为 30,000 个组织管理大约一百万个任务。因此,CircleCI 被许多中小企业和企业用作首选的 CI/CD 工具。
- CircleCI 可用于通过 docker 层缓存、高级缓存等有效地操作非常复杂的管道。此外,它还有一个资源类可以在更快的计算机上操作。
- CircleCI 支持基于性能的定价选项,这对许多组织来说更方便。
- CircleCI 提供更快的性能,开发人员可以通过使用 SSH 来珍惜这种性能,以便调试构建中的任何问题。
- 还提供并行构建和不同的环境定制,以便通过 CircleCI 更快地执行多个进程。
- 在应用程序存储库作为项目被批准并提交到 CircleCI 上后,任何新的代码更新或提交都会在新的 VM 或容器中执行自动检查。市场上的大多数 CI/CD 工具都没有提供这一点。
- CircleCI 是轻量级的,非常适合在可扩展且强大的云服务器上进行更快的部署作业。
如何设置 CircleCI 帐户
要开始使用 CircleCI,您只需要一个 CircleCI 帐户。您可以通过CircleCI 官方网站轻松注册。
1. 这是CircleCI主页。
2. 单击页面右上角的“转到应用程序” 。您将被重定向到一个新的注册页面。
3. GitHub是使用最广泛的版本控制系统。因此,我选择“使用 GitHub 注册”选项。
4. 选择“使用 GitHub 注册”选项后,会出现一个新页面,要求通过用户名和密码进行授权。输入您的凭据后单击“登录”按钮
5. 登录过程后,CircleCI 将要求授权和权限,如查看存储库等。继续,单击绿色按钮并授权 CircleCI。
6. 认证授权后,我们会进入CircleCI的欢迎界面。在页面上选择问题的答案,然后单击 Let's Go。
7. 以下是贵组织的选择。如果有多个帐户与您的组织关联,所有帐户都将在此处列出。选择您要用作官方帐户的帐户。
8. 您可以在需要时从您帐户的设置中更改组织。选择组织后,您将可以访问 CircleCI 仪表板。
9. 这样,您就成功创建了 CircleCI 帐户。
CircleCI 中的 Orbs 和 Integrations
尽管帐户创建方法很简单,但 CircleCI 提供了与其他技术集成的更方便的方法。例如,CircleCI 通过 Orbs 也使 CI/CD 变得简单。因此,让我们深入了解什么是 CircleCI orbs 和 Integrations。
CircleCI 中的Orbs
CircleCI orb 是一个 YAML 格式的可重用包,它将重复的配置片段压缩到一个包中。Orb 是可参数化配置元素的开源、可共享包,包括作业、命令和执行程序。除了重复过程的自动化之外,CircleCI Orbs 的一些主要优点如下:
- 与第三方工具无缝集成。
- 节省项目配置时间。
- 降低配置复杂性。
- 提高开发人员和企业级别的组织效率。
CircleCI 的注册表中有预建的应用程序,但可以根据您的要求创建新的球体。它还提供了一个 orb 开发工具包,可帮助轻松创建新的 orb。
流行的 Orb 有 Slack、AWS(Amazon Web Services)、Microsoft 等。
为了简化项目配置,您还可以使用 Orb 用例。这些有助于轻松配置项目并顺利设置第三方集成。
使用 CircleCI Orbs的好处
CircleCI Orbs 可以大大简化配置。此外,这些 Orbs 在很大程度上减少了代码行数。为了说明这一点,让我们举个例子:
典型示例配置:在这里,我们正在定义Node.js 应用程序的测试配置。使用 circleci/node orb 提供的测试作业,使用测试应用程序所需的步骤定义作业。使用 orbs,您可以编写一次参数化配置并将其部署到多个项目中。
使用 CircleCI Orb 编写代码
version: 2.1
orbs: node: circleci/node@x.y #orb version
workflows:
test_my_app:
jobs:
- node/test:
version:
没有 CircleCI Orb 的代码
version: 2.1
jobs: test:
docker:
- image: cimg/node:
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference steps:
- checkout
- restore_cache:
keys: - node-deps-v1-{{ .Branch }}-{{checksum "package-lock.json"}}
- run:
name: install packages
command: npm ci - save_cache:
key: node-deps-v1-{{ .Branch }}-{{checksum "package-lock.json"}}
paths: - ~/.npm - run: name: Run Tests command: npm run test workflows: test_my_app: jobs: - test
所以,你可以看到代码行之间的区别!您可以在Orb Registry中找到更多 CircleCI Orb 。
使用 CircleCI 创建 CI/CD 管道
先决条件:
GitHub 和 CircleCI 帐户的管理员级别访问权限和有效凭据。
创建一个新的存储库
- 导航到 GitHub 并登录到您的 GitHub 帐户。
- 通过将存储库名称命名为 hello-world 创建一个新存储库。接下来,单击 Initialize this repository with a README。然后,最后,单击创建存储库。
设置 CircleCI
- 登录到您的 CircleCI 帐户并导航到“项目”页面。
1. 当您登录到您的 CircleCI 帐户时,选择您在其中创建了一个名为 hello-world 的新存储库的组织。
2. 找到您打算使用的项目,然后单击其右侧的“设置项目”。
3、选择Set Up Project后,出现一个新的对话框;选择 Write your own using our starter config.yml template 然后点击 Let's Go。
4. 该对话框包含项目的示例配置。由于我们的项目是一个空存储库,因此从对话框中选择 Hello World config。
5. 根据选择的语言和框架,我们可以在编辑器中查看config.yml模板。此外,它的文档可以在编辑器的右侧查看。
7. 现在,要创建您的第一个 CircleCI 管道,请单击“提交并运行”。这将在根目录/存储库中创建 .circleci/config.yml,其中包含一个名为 circle-ci-setup 的新分支。您可以将此分支与 master 分支合并。
8. 你会看到你的 hello-world 管道自动运行。
检查第一个 CircleCI 管道
1. 您会看到一个新屏幕,其中显示了处于“运行”阶段的新管道。
2、接下来,如果执行成功,这个运行阶段就会进入“成功”阶段。
3. 单击成功,您将被带到一个新屏幕,其中将反映工作流程和作业。在这里,我们运行了一个名为 welcome/run 的作业(即单个工作流)。单击 Welcome/run 并调查作业的步骤。
4. 在这里,一个球体用于为项目提供默认值。通过使用 orb,我们可以快速访问常用配置。orb 是 circleci/welcome-orb@0.4.1。这提供了一个简单地问候用户的预构建工作流。
5. 每个 CircleCI 流水线都配置了多个步骤。由于使用了 circleci/welcome-orb@0.4.1 orb,我们看不到自定义步骤,因为它们是在 orb 本身中配置的。这些步骤可能是结帐等。这些是 CircleCI 中的保留或特殊命令。构建成功,因为 orb 已成功执行,退出代码为 0。有时,有多个 Docker 映像和多个测试的多个步骤。接下来我们来做一个演示。
为构建增加更多的复杂性
1.我们现在将在Github上编辑我们的config.yml。config.yml应该保存到的地址在这里。替换存储库的名称和用户名并将其粘贴到浏览器中。我们的网址在这里。
2. 我们将在代码中添加新功能。通过 Github 将以下代码复制并粘贴到您的 config.yml 中并运行管道。
version: 2 jobs: # we now have TWO jobs, so that a workflow can coordinate them! one: # This is our first job. docker: # it uses the docker executor - image: circleci/ruby:2.4.1 # specifically, a docker image with ruby 2.4.1 auth: username: mydockerhub-user password: $DOCKERHUB_PASSWORD # context / project UI env-var reference # Steps are a list of commands to run inside the docker container above. steps: - checkout # this pulls code down from GitHub - run: echo "A first hello" # This prints "A first hello" to stdout. - run: sleep 25 # a command telling the job to "sleep" for 25 seconds. two: # This is our second job. docker: # it runs inside a docker image, the same as above. - image: circleci/ruby:2.4.1 auth: username: mydockerhub-user password: $DOCKERHUB_PASSWORD # context / project UI env-var reference steps: - checkout - run: echo "A more familiar hi" # We run a similar echo command to above. - run: sleep 15 # and then sleep for 15 seconds. # Under the workflows: map, we can coordinate our two jobs, defined above. workflows: version: 2 one_and_two: # this is the name of our workflow jobs: # and here we list the jobs we are going to run. - one - two
3.提交这些更改并遍历回CircleCI管道页面;您将看到新管道正在运行。
4.点击新管道的Success按钮,你会发现两个工作流;这些作业,一和二,将同时成功运行。
我们已经运行了一个包含两个并发作业的简单管道;您可以通过添加不同的球体和不同的工作流程来扩展管道的功能。
如何将 CircleCI 管道与在线selenium grid集成
到目前为止,您了解了如何设置完整的 CircleCI 管道,但此设置的实际目的是什么?好吧,它适用于团队大规模启用自动化测试。CI/CD 工具使团队能够实现更快、更高效的反馈循环。使用 CI/CD 管道运行自动化测试有助于缩短交付时间,并且团队可以更快地修复错误。当我们完成安装并创建 CircleCI 管道后,我们可以继续下一步执行 Selenium 测试自动化。
在本地基础架构上执行浏览器自动化测试不是一种经济高效且可扩展的解决方案。您无法通过维护本地测试基础设施来实现最佳水平的测试覆盖率、性能和并行运行测试的能力。这些功能在基于云的 Selenium Grid 上更加经济和可扩展。
基于云的 Selenium Grid 允许您跨多个浏览器、操作系统和设备运行串行(和并行)测试。LambdaTest 通过提供云测试基础架构在 3000 多个真实浏览器和浏览器版本上运行 Selenium 测试,帮助扩展您的跨浏览器测试工作。
如果与 CircleCI 管道集成,您可以通过更快的周转时间和加速的产品交付获得竞争优势。让我们深入了解使用 CI/CD 管道执行自动化测试的主要步骤。
要求
- Git 或 Github 存储库:在这里,我们为您提供了一个包含一些 Nightwatch 测试的存储库。存储库的 URL 在这里。
- Node.js 安装:下载并安装 node.js 和节点包管理器 npm。用于在 Windows 10 中安装 node.js 的命令是 npm install。如果已安装,请将其更新到最新版本。
- LambdaTest 身份验证凭据:您可以从 LambdaTest 自动化仪表板检索您的身份验证凭据,在您帐户的配置文件部分。通过以下命令将它们设置为环境变量:
$ export LT_USERNAME= $ export LT_ACCESS_KEY=
在 GitHub 上创建 Config.yml
1. 为了集成 LambdaTest 和 CircleCI,您需要对 .circleci/config.yml 进行轻微更改——您的 CircleCI 管道实例的配置文件。
2. 更改主要涉及添加 LambdaTest 用户名和访问密钥以将 CircleCI 管道连接到您的 LambdaTest 自动化仪表板。
3. 用户名和访问密钥设置为将 LambdaTest Selenium Grid 连接到 CircleCI 管道以运行测试所需的环境变量。
4. config.yml 的代码应该如下所示:
# Javascript Node CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-javascript/ for more details # version: 2 jobs: build: docker: # specify the version you desire here - image: circleci/node:8.0 # Specify service dependencies here if necessary working_directory: ~/Nightwatch-circleci-selenium steps: - checkout - run: name: "Downloading tunnel binary" command: | wget http://downloads.lambdatest.com/tunnel/linux/64bit/LT_Linux.zip - run: name: "Extracting tunnel binary" command: | sudo apt-get install unzip unzip LT_Linux.zip - run: name: "Executing tunnel binary" background: true command: | ./LT -user -key sleep 40 - run: name: "Setup custom environment variables" command: | echo 'export LT_USERNAME= >> $BASH_ENV - run: name: "Setup custom environment variables" command: | echo 'export LT_ACCESS_KEY= >> $BASH_ENV - run: # test what branch we're on. name: "Here is the LT_Username : " command: echo ${LT_USERNAME} # Download and cache dependencies # - restore_cache: # keys: # - v1-dependencies-{{ checksum "package.json" }} # fallback to using the latest cache if no exact match is found - run: npm install # - save_cache: # paths: # - node_modules # key: v1-dependencies-{{ checksum "package.json" }} # run tests! - run: node_modules/.bin/nightwatch -e chrome //executing tests in Bash
5、上面的pipeline配置会用到节点的镜像。它将使用指定目录中的用户名和访问密钥为 LambdaTest 创建环境。然后它将下载并解压缩二进制隧道,然后在 Online Selenium Grid 上运行 Nightwatch 测试。
6. 将CircleCI Pipeline与LambdaTest集成,进行实时测试和自动化测试。
运行 CircleCI 和 LambdaTest 集成管道
1. 登录您的 CircleCI 帐户并转到项目页面。
2. 在项目页面上,搜索所需的 GitHub 存储库。现在,单击搜索到的存储库旁边的“设置项目”按钮。
3. 当您单击“设置项目”按钮时,将出现一个新对话框。
4. 选择选项“如果您的存储库中已有 .circleci/config.yml ……”。在这个选项下,你会发现 CircleCI 已经自动在你的仓库中搜索配置文件。发布此消息,然后单击 Let's Go。
5. 您可以在下一个窗口中看到正在运行的 CircleCI 管道。几秒钟后,您会在窗口中看到输出。
在 LambdaTest 仪表板上查看测试
1. 登录您的 LambdaTest 账户。
2. 在最右侧,您可以看到最近的测试;您绝对可以在 chrome 环境中找到通过 circleCI 管道运行的测试。
3. 如果在那里找不到您的测试,只需单击最左侧列中的自动化。
4. 在 Timeline 选项卡下,您会在这里找到在 Chrome 环境中运行的所有 Nightwatch 测试。
5.点击查看测试录像,更敏锐地观察测试。
这样,您可以轻松地在 LambdaTest 平台上运行测试并观察应用程序或软件产品。为了更快地获得结果,您还可以尝试在 LambdaTest Selenium Grid 上进行并行测试。
总结
CircleCI 使技术驱动的组织和企业能够大规模地尝试他们最好的工作。CircleCI 在与其他云平台、代码分析平台等的集成方面也很出色。
如文章中所述,CircleCI 与 Cloud Selenium Grid LambdaTest 无缝集成,使组织能够大规模执行自动化测试。这使得整个质量保证过程更容易、更富有成效且更省时。
我希望这个关于 CircleCI 管道的教程对你来说是一个宝贵的资源。请随时与我们联系以获取反馈。
快乐测试!
热门跟贴