tag 标签: 持续集成

相关帖子
相关博文
  • 2024-12-16 16:44
    332 次阅读|
    0 个评论
    在现代软件开发领域,效率和可靠性是企业在竞争中取胜的关键。本文将深入探讨 ANA Systems 如何通过引入业界领先的 CI/CD 平台——CircleCI,克服传统开发流程的瓶颈,实现开发运营效率的全面提升。同时,本文还将详细解析 CircleCI 的核心优势,包括其强大的自动化功能、广泛的工具整合能力,以及为企业量身定制的支持服务,揭示其如何助力 ANA Systems 在「新一代国内旅客项目」中脱颖而出。这一案例将为企业优化开发流程、提升竞争力提供重要的实践参考。 ANA Systems 面临的挑战 ANA Systems 负责开发和运营 ANA 集团的各种信息系统,包括乘客服务系统。 随着航空业的发展,传统的乘客服务系统已无法满足日益增长的旅客需求, ANA Systems 启动了「新一代国内旅客项目」,旨在整合国内和国际航班的预订系统,并提供更便捷的乘客服务。 在项目初期,ANA Systems 就意识到构建一个安全高效的开发运营环境至关重要。然而,他们之前使用的开源 CI/CD 工具功能有限,无法实现测试、构建和部署的广泛自动化。许多流程,例如程序代码合并、构建和回归测试,都需要手动完成,这导致了工作延误和发布时间受限等问题。 CircleCI 解决方案 为了克服这些挑战,ANA Systems 选择了 CircleCI 作为其 CI/CD 平台。 CircleCI 具有以下优点,使其成为 ANA Systems 的理想解决方案: 丰富的全球业绩和活跃的用户社群 : 作为 CI/CD 工具的业界标准,CircleCI 拥有大量的成功案例和活跃的用户社群,方便 ANA Systems 获取各种信息和支持。 低成本和易于管理 : 作为 SaaS 服务,CircleCI 的初始成本较低,并且无需额外的维护和运营工作,这对于 ANA Systems 来说非常具有吸引力。 广泛的执行环境和测试工具整合 : CircleCI 支持多种执行环境,包括 Linux、MacOS、Windows、Docker、GPU 和 Arm,并且可以与 Jest、Mocha、pytest、JUnit、Selenium 和 XCTest 等多种测试框架整合。这使得 ANA Systems 能够针对其前端和后端系统开发构建相应的环境。 强大的自动化功能 : CircleCI 可以自动执行测试、构建和部署等流程,从而释放人力资源,提高开发效率。 优质的付费支援服务 : CircleCI 提供付费进阶支援计划,其中包括由 CircleCI 专家进行的程序代码审查。这些专家可以根据 ANA Systems 的特定需求提供建议, 例如缩短部署时间和减少 credit 使用量,帮助他们建立高效的 pipeline。 最终成果 通过使用 CircleCI,ANA Systems 在「新一代国内旅客项目」中取得了以下显著成果: 减少人力成本 : CircleCI 的自动化功能极大地减少了链接库管理员在构建、测试和部署过程中所需的手动操作。据统计,CircleCI 每月帮助 ANA Systems 节省了大约 1,000 个工时。 提高安全验证效率 : 通过将安全验证工具整合到 CircleCI 的测试阶段,ANA Systems 可以更早、更频繁地执行安全验证,从而减少在应用程序上线前才发现安全漏洞而需要进行重大返工的情况。 加快开发速度 : CircleCI 的自动化流程和快速反馈机制,让 ANA Systems 的开发团队能够更快地迭代和发布新功能,提升了项目的整体进度。 ANA Systems 计划在未来将 CircleCI 的应用扩展到生产环境的发布,并将其应用于微服务架构的开发。 他们相信 CircleCI 的强大功能将持续为 ANA Systems 的业务发展提供有力支持。 总结 ANA Systems 成功利用 CircleCI 平台提高了「新一代国内旅客项目」的效率。CircleCI 的自动化功能、多样化的执行环境和测试工具整合、以及优质的支援服务,帮助 ANA Systems 减少了人力成本、提高了安全验证效率,并加快了项目的开发速度。 CircleCI 的成功应用案例表明,CI/CD 平台在现代软件开发中扮演着至关重要的角色,可以帮助企业显著提高效率和竞争力。
  • 2023-10-10 09:51
    0 个评论
    D ocker 简介 Docker是一个开源的应用容器引擎,它可以实现让开发者打包他们的应用、依赖以及配置到一个可移植的镜像中,并且可以发布到任何可运行Docker的Linux或Windows操作系统的机器上,并可以无需再次进行配置便完美执行。Docker容器是使用的沙箱机制,任何容器之间的创建、运行和关闭不会相互影响,相互之间也不会有任何接口。容器和虚拟机虽然都使用虚拟化技术,但容器并不是模拟一个完整的操作系统,而是在宿主机操作系统上应用虚拟化技术,可实现软件应用的秒级启动和响应,相比而言,虚拟机冗余步骤多、启动太慢、占用内存硬盘资源,过于笨重。 在敏捷开发模式越发流行的现在,Docker技术的使用也越发普遍,开发过程中对迭代版本中的代码的测试成本也逐渐增长,如何方便快捷地对代码进行测试也随之成为了一个越来越值得关注的问题。 在众多种类的代码动态测试工具中,北汇信息所采用的是Vector旗下的代码动态测试工具—VectorCAST/C++。 VectorCAST/C++工具是德国Vector公司的一款白盒测试工具,主要用于实现代码的单元测试和集成测试。工具最大的特点以及优势就在于经受了多个大型量产项目的实践,证明了工具对C++高阶特性、Linux系统和CI平台的强力支持。 那下面为大家介绍VectorCAST这款强力的动态代码测试工具在Docker场景中的使用。 VectorCAST 使用 基于Docker技术进行开发,实际情景一般是代码与编译环境同时部署在镜像中,或是代码和编译环境分开部署在本地服务器和镜像内,那么这也导致在使用工具时可能会采用不同的方式。 一、挂载工具方式 在使用多个Docker镜像进行代码版本迭代或控制的开发场景下,不需要将VectorCAST工具先放置到镜像中,而是使用挂载的形式,将工具在启动容器时挂载到对应容器中,以实现在容器中对工具的使用,此方式大大减少了工具重复的安装过程,并且实现同一个工具对不同镜像的复用。下面简要说明使用的流程。 容器的启动 参数解析: 1、docker:Docker的二进制执行文件。 2、run:与前面的docker组合来运行一个容器。 3、-v:设定共享目录,为了将安装包保存到容器中,需要指定目录。D:\Docker\Data指本地目录,可以自定义;/dev/shm是指容器中的目录。将需要复制到容器中的文件放置到D:\Docker\Data中,在容器中就可以进入/dev/shm来访问这些文件。 4、-i: 以交互模式运行容器 5、-t: 为容器重新分配一个伪输入终端 6、-e:设置环境变量 在启动容器时将工具所在的目录通过-v选项挂载到容器内。 修改工具启动文件 工具在容器内打开后使用的是容器内部的文件树,所以需要将启动文件中对应的路径进行修改。 工具启动与使用 工具成功启动后可以在工具顶端会标识出正在运行工具的容器id号。 二、工具镜像方式 若是需要进行经常性的工具迁移使用,使用工具挂载方式会显得不便捷,那可以选择另一种方式在容器中使用工具,即将工具放置在镜像内,实现快捷的工具迁移。以下对此方式进行介绍。 编写 D ockerfile 使用dockerfile在制作镜像时将工具目录同时拷贝进去而形成一个新的镜像。 构建镜像 启动容器 使用指令启动刚刚新制作的镜像,而镜像里本身就已经包含着工具,不需额外对工具进行挂载。 修改工具启动文件 工具在容器内打开后使用的是容器内部的文件树,所以需要将启动文件中对应的路径进行修改。修改后可启动工具。 工具使用 工具成功启动后同样可以在工具顶端标识出正在运行工具的容器id号。 总结 在敏捷开发模式越发流行的现在,Docker技术的使用也随之越发普遍,使用Docker会给开发带来一些优势,如更高效的系统资源利用、更快速的应用启动、提供统一的运行环境、利于实现持续集成与部署、更易于移植以及更便捷的维护和拓展。但对开发过程中对迭代版本中的代码的测试成本也逐渐增长,方便快捷地对代码进行尽可能早的测试也成为了越来越多用户所追求的。 VectorCAST作为一款强力的C/C++代码测试工具,不仅可以与Docker技术进行结合,并且可以适配实际的交叉编译链,对代码基于最真实编译环境进行完备的测试检验,大大减少因代码测试中测试工具与环境分割或适配带来的花费,提高测试效率和降低测试难度。 如果您想了解更多有关信息请联系北汇信息,北汇信息作为Vector公司的中国合作伙伴,拥有专业的VectorCAST测试服务团队,可为您提供周全完整的研发、测试解决方案及优质的技术支持服务。
  • 热度 7
    2023-9-27 10:20
    1291 次阅读|
    0 个评论
    持续集成(Continuous Integration,简称CI)是一种软件开发/测试方法。它要求开发及测试人员频繁地将代码提交到用于共享的开发分支中,经过充分的测试和审查,然后通过 自动化的构建和测试流程 ,对代码进行构建、单元测试、集成测试等步骤以确保代码的质量和可交付性。 早在2000年代初,就有主机厂及零部件供应商开始尝试通过持续集成来提升软件开发效率和质量。而在竞争愈发激烈、整车集成化趋势愈加凸显的当下,二者都认识到提升软件开发效率和质量的重要性。他们深刻的明白为了快速响应市场需求和用户反馈,同时尽可能避免缺陷和故障,一个高效可靠的持续集成流程是必须的。因此,持续集成在汽车软件测试行业的重要性自是不言而喻。 Jenkins作为最具代表性,市场占比最高的开源CI工具,在构建持续集成流程方面发挥了重要作用。通过使用Jenkins,,可以轻松地集成其他各式工具,自动构建、执行测试流程。Jenkins 还提供了灵活且丰富的插件系统,允许用户根据需要去定制专属的工作流程。 在这样的背景下,VectorCAST作为Vector公司旗下基于V模型开发的C/C++代码动态测试工具,也针对Jenkins开发了自己的插件,使其能够与Jenkins进行无缝集成。通过使用VectorCAST和Jenkins进行集成测试,无需启动客户端便可便捷快速的完成自动测试及增量回归测试,得到完整的测试结果报告。 那么接下来就为大家介绍如何在Jenkins上完成对VectorCAST工程的持续集成。 集成准备工作 1、 VectorCAST 工程配置 当我们想在Jenkins上执行VectorCAST工程时,我们首先需要有一个完整的VectorCAST工程,包含四个部分,即编译器、测试套件、组和环境。 在完成于VectorCAST工具上的测试项目创建后(具体操作方式请查看 【北汇信息】VectorCAST培训视频 | VectorCAST快速入门_哔哩哔哩_bilibili ),得到工程对应的vcm文件: 2 、Jenkins配置 在网页端打开Jenkins,通过Jenkins的Manage Jenkins → Plugins → Available plugins搜索安装VectorCAST对应的两个可安装插件: 通过Jenkins的节点管理Manage Jenkins → Nodes来创建执行项目所用的节点并设置节点并发数。节点是用来执行构建任务的工作机器或服务器,我们可以自由选择创建在主机或虚拟机中,通过在Jenkins中配置和管理节点,可以实现分布式构建和部署,通过将任务分配到不同的节点上并行执行,来提高构建和部署的效率;而并发数应选择设置为大于等于当前项目的环境数,否则会导致当前项目没有可用的节点致使执行停止: 回到Jenkins主页面选择VectorCAST,我们便可以看到现在可通过Create Single Job或是Create Jenkins Pipeline来创建任务,在Jenkins中,Single Job和Pipeline Job都可以完成同样的构建过程与结果,而Pipeline Job更适合多个测试环境下需要节省时间并行执行的项目,且对于Pipeline Job,我们不需要单独去编写pipeline脚本,VectorCAST插件会自动生成pipeline脚本来帮助我们更快速便捷的构建Jenkins工程: 二、 J e nkins Job 创建 我们选择任一Jenkins Job,开始对相应的VectorCAST工程进行配置,配置选项除以下提及外皆选择默认即可。 在Project Path处选择我们项目的vcm文件的路径,如是本地则选择其绝对路径,如使用Git库/SVN拉取文件则转为选择相对路径: Node Label处填入此前创建好的节点名称: Job Options处选择为当下创建的任务命名,此处也可保持空白,插件会根据 vcm 文件的名字自动命名: 在接下来的Scripts脚本处可用于定义 Windows及Unix(根据实际使用的系统而定)的脚本命令。我们可以通过定义环境变量或调用批处理文件来设置环境脚本命令。当我们的工程是通过交叉编译链进行编译的,那么就可以将相应的环境配置或是批处理脚本填入此处: 当我们需要从Git库/SVN检出文件时,我们可以通过SCM项进行关联: Single J ob: Pipeline Job : 在我们完成对于Jenkins Job的配置后,选择Create即可完成Jenkins Job的创建。 三、执行并查看结果 选择我们上面创建好的Jenkins Job,通过Build Now执行当前任务。 Jenkins的自身特性会在任务执行过程中实时监控并进行记录,通过点击执行进度条进入控制台查看实时执行进度: 待执行完成后便可查看执行结果,VectorCAST插件同样会生成通过工具执行结果所得的相应报告: 同时我们也可以检查这个工程的测试用例的执行情况及整体的覆盖度情况: 对于Pipeline Job,我们还可以通过阶段视图与Blue Ocean来帮助我们更清晰的认知到每一阶段的执行情况: 以上就是我们通过Jenkins集成VectorCAST的全部内容,而除此之外, 我们还提供基于脚本的 方案来助力自动化整个测试流程 。 相较于需要手动进行配置的插件。脚本方案可以更加便捷灵活的完成适配工程,执行测试,报告生成并通知的全自动化流程。 如果您对这方面感兴趣 或是有 任何需求,请随时 与我们取得联系,我们很乐意与您进行详细讨论。 四 、总结 目前,持续集成在汽车软件测试行业已经成为一种必要的实践。许多的汽车公司都建立了专门的持续集成流程,来管理和执行软件的构建、部署、测试和监控等活动。同时,也另有一些新兴的技术和工具,如云计算、微服务架构、 DevOps 实践 等,为持续集成提供了更多的可能性和挑战。 对于VectorCAST来说,它不仅仅在持续集成领域提供了卓越的支持,还可以通过与Docker集成来提供更灵活的测试环境,VectorCAST还支持与多种需求管理服务器(如Polarion、CodeBeamer等)进行集成。同时,VectorCAST还提供了整个测试过程的命令行接口,并支持自定义生成报告等多种功能。 如果您想了解更多有关信息请联系北汇信息,北汇信息作为Vector公司的中国合作伙伴,拥有专业的VectorCAST测试服务团队,可为您提供周全完整的研发、测试解决方案及优质的技术支持服务。
相关资源