网易首页 > 网易号 > 正文 申请入驻

如何使用 CircleCI 和 Selenium Grid 构建自动化测试管道

0
分享至

关注留言点赞,带你了解最流行的软件开发知识与最新科技行业趋势。


在本文中,您将了解有关 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 的主要特点:

  1. 您可以通过 GitHub 或 Bitbucket 在 CircleCI 门户上注册。这会自动与您的 GitHub/Bitbucket 帐户集成,并让您选择一个存储库来设置 CircleCI 管道项目。不需要不必要的进口。
  2. 将存储库作为项目添加到 CircleCI Enterprise 后,添加的每个新代码或新提交都会触发新构建。
  3. 在每个新构建中,都会发送有关构建成功(或失败)的通知。这是通过集成了 Slack 和 IRC 通知的 webhooks 完成的。
  4. 您还可以使用 CircleCI 在各种环境中部署代码,例如 AWS S3、AWS EC2 容器服务 (ECS)、Heroku、Microsoft Azure 等。
  5. CircleCI 还提供代码覆盖率结果,这些结果可以在任何添加了报告库的项目的详细信息页面上轻松获得。
  6. 可以通过与 CircleCI 的 SSH 连接来尝试云服务部署。
  7. CircleCI 还为您提供 API 服务以与不同的作业配置集成。
  8. 您还可以从 Jenkins、AWS、Microsoft Azure 等无缝迁移到 CircleCI。
CircleCI 相对于其他 CI/CD 工具的优势

挑选最好的 CI/CD 工具始终是开发人员、工程师、测试人员和 QA 专家的一项任务。CircleCI 跨越了这个任务,为您提供更快的性能和优化的构建。此外,它还通过智能自动化提高了工程团队的工作效率和时间效率。以下是 CircleCI 相对于其他流行的 CI/CD 工具的主要优势:

  1. CircleCI 每天为 30,000 个组织管理大约一百万个任务。因此,CircleCI 被许多中小企业和企业用作首选的 CI/CD 工具。
  2. CircleCI 可用于通过 docker 层缓存、高级缓存等有效地操作非常复杂的管道。此外,它还有一个资源类可以在更快的计算机上操作。
  3. CircleCI 支持基于性能的定价选项,这对许多组织来说更方便。
  4. CircleCI 提供更快的性能,开发人员可以通过使用 SSH 来珍惜这种性能,以便调试构建中的任何问题。
  5. 还提供并行构建和不同的环境定制,以便通过 CircleCI 更快地执行多个进程。
  6. 在应用程序存储库作为项目被批准并提交到 CircleCI 上后,任何新的代码更新或提交都会在新的 VM 或容器中执行自动检查。市场上的大多数 CI/CD 工具都没有提供这一点。
  7. 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 的一些主要优点如下:

  1. 与第三方工具无缝集成。
  2. 节省项目配置时间。
  3. 降低配置复杂性。
  4. 提高开发人员和企业级别的组织效率。

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 帐户的管理员级别访问权限和有效凭据。

创建一个新的存储库
  1. 导航到 GitHub 并登录到您的 GitHub 帐户。
  2. 通过将存储库名称命名为 hello-world 创建一个新存储库。接下来,单击 Initialize this repository with a README。然后,最后,单击创建存储库。

设置 CircleCI
  1. 登录到您的 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 管道执行自动化测试的主要步骤。

要求
  1. Git 或 Github 存储库:在这里,我们为您提供了一个包含一些 Nightwatch 测试的存储库。存储库的 URL 在这里。
  2. Node.js 安装:下载并安装 node.js 和节点包管理器 npm。用于在 Windows 10 中安装 node.js 的命令是 npm install。如果已安装,请将其更新到最新版本。
  3. 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 管道的教程对你来说是一个宝贵的资源。请随时与我们联系以获取反馈。

快乐测试!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
最后2分38秒,湖人领先19分,换上布朗尼,场边詹姆斯满眼期望

最后2分38秒,湖人领先19分,换上布朗尼,场边詹姆斯满眼期望

美人茶话会
2024-12-25 15:49:08
你在生活中有过艳遇的经历吗?网友:半夜买烟遇到无家可归小姐姐

你在生活中有过艳遇的经历吗?网友:半夜买烟遇到无家可归小姐姐

有趣的火烈鸟
2024-12-25 15:31:20
沪苏湖高铁正式通车!安徽这些地方去上海更快了

沪苏湖高铁正式通车!安徽这些地方去上海更快了

中安在线
2024-12-26 10:16:12
“发现订婚男友家给的金镯子是假的”:永远别轻视人性的阴暗面

“发现订婚男友家给的金镯子是假的”:永远别轻视人性的阴暗面

精读君
2024-12-26 10:38:07
斗争形势严峻,第二批055大驱提前出海,加急交付东海舰队

斗争形势严峻,第二批055大驱提前出海,加急交付东海舰队

头条爆料007
2024-12-24 21:58:27
噩耗!阿森纳球星萨卡重伤,6000万签边锋驰援

噩耗!阿森纳球星萨卡重伤,6000万签边锋驰援

球文速递
2024-12-25 15:36:21
火药味升级,库里回击詹姆斯!

火药味升级,库里回击詹姆斯!

田先生篮球
2024-12-25 15:34:32
伊朗,伤了中东兄弟们的心

伊朗,伤了中东兄弟们的心

江平舟
2024-12-25 12:00:02
笑死!台湾三个道士在广东被抓,民进党威胁大陆不放人就报复!

笑死!台湾三个道士在广东被抓,民进党威胁大陆不放人就报复!

青青子衿
2024-12-26 02:51:52
官宣!34岁国乒劲敌正式告别,世乒赛曾战胜马龙,给名宿之子让位

官宣!34岁国乒劲敌正式告别,世乒赛曾战胜马龙,给名宿之子让位

体坛纪录片
2024-12-25 16:20:36
25款特斯拉ModelY:全能选手来了!

25款特斯拉ModelY:全能选手来了!

爱论历史
2024-12-25 22:30:31
21岁女大学生凭一己之力让大连和工业大学上热搜,她是怎么做到的

21岁女大学生凭一己之力让大连和工业大学上热搜,她是怎么做到的

小人物看尽人间百态
2024-12-22 19:47:30
魏德尔说:“德国一共打了两次仗,两次都打得很惨。”

魏德尔说:“德国一共打了两次仗,两次都打得很惨。”

玲子日记
2024-12-25 14:49:33
周楠生,已任东莞市纪委书记

周楠生,已任东莞市纪委书记

南方都市报
2024-12-25 19:19:07
湖南1男子为父报仇,玩弄仇人妻子10年,一夜屠尽仇家13口

湖南1男子为父报仇,玩弄仇人妻子10年,一夜屠尽仇家13口

风飘飘而吹衣
2024-12-22 10:59:18
日本医疗被评为全球第一,中国却位居第64,差距到底在哪里?

日本医疗被评为全球第一,中国却位居第64,差距到底在哪里?

笑熬浆糊111
2024-12-25 00:05:30
曾被“吹爆”的三折叠手机,销量不过万台,为何突然不火了?

曾被“吹爆”的三折叠手机,销量不过万台,为何突然不火了?

i王石头
2024-12-23 23:17:31
没想到身上有味儿还可能是有病!网友:棉衣都挡不住他的死亡味道

没想到身上有味儿还可能是有病!网友:棉衣都挡不住他的死亡味道

美好客栈大掌柜
2024-12-24 00:10:03
突发!美国曝出千万吨稀土,中方反制没用了?对外释放信号不简单

突发!美国曝出千万吨稀土,中方反制没用了?对外释放信号不简单

傲骨真新
2024-12-26 09:00:19
中国一个奇怪的现象:收入1万以下的夫妻,吵架基本都是为了钱;1万以上的家庭,吵架都是一方很强势。

中国一个奇怪的现象:收入1万以下的夫妻,吵架基本都是为了钱;1万以上的家庭,吵架都是一方很强势。

财经三分钟pro
2024-12-07 08:42:59
2024-12-26 11:55:00
墨谈科技 incentive-icons
墨谈科技
业务数码玩家.无聊的博主
3955文章数 583关注度
往期回顾 全部

科技要闻

小米正搭建GPU万卡集群,大力投入AI大模型

头条要闻

新能源汽车年底上演融资高潮 背后站满了"国资投资人"

头条要闻

新能源汽车年底上演融资高潮 背后站满了"国资投资人"

体育要闻

再见,中超最后的超级巨星

娱乐要闻

刀郎演唱会再次爆火,登顶top榜单,背后的原因耐人寻味

财经要闻

四大行股价创新高 40家银行仍“破净”

汽车要闻

新物种iCAR V23的“尤里卡时刻”

态度原创

手机
健康
本地
艺术
公开课

手机要闻

OPPO Find“全家桶”曝光,多形态新机将至

花18万治疗阿尔茨海默病,值不值?

本地新闻

好吃潮州|尝一口,这里的美食有点“潮”

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版