tag 标签: 持续集成

相关帖子
相关博文
  • 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
    1207 次阅读|
    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测试服务团队,可为您提供周全完整的研发、测试解决方案及优质的技术支持服务。
相关资源