图像算法的自动化测试平台的设计与实现
这是一篇关于自动化测试,图像算法,自动化调度,持续集成,设备调度的论文, 主要内容为随着软件技术广泛应用于互联网中,人们对软件产品的质量要求也在逐渐提高。为了提高软件的质量,自动化测试成为一种降低成本、缩短开发周期、保障产品质量的重要技术。由于图像算法的在短视频和美颜相机领域广泛应用,极大地促进了图像算法的发展和版本迭代,其测试工作量也在逐渐增大。因此,自动化测试成为提高图像算法测试效率的主要途径。本文所设计的图像算法的自动化测试平台结合了业务实际需求,对各业务需求通过提取相同点作为通用点,保留不同点作为定制点,以自动化测试代替人工手动测试,大大节省了测试人员频繁搭建测试环境和人工手动操作设备的时间。主要在于通过业务自动化测试,持续集成Jenkins,设备智能分发和设备调度共同作用而实现的集成自动化测试平台,帮助公司快速提交测试脚本程序,减少因人为因素造成的错误,极大地保证了程序的质量,成为一个高效地,高质量地软件的自动化测试平台。图像算法的自动化测试平台采用SSM框架、Jenkins持续集成,MySQL作为基础数据库,Web Assembly作为视频的解析工具,FFmpeg进行视频关键帧提取,Python作为自动化脚本编写语言。本文一共分为七个模块,分别是任务管理、自动化调度、执行管理、Job管理、设备管理、资源管理、结果管理七个模块。任务管理模块主要有任务创建、查看历史任务列表等。自动化调度模块主要根据调度算法来自动化调度容器和设备调度去执行任务。执行管理主要是对执行过程中的执行信息和过程进行管理等。Job管理主要有配置Job信息和设置任务执行步骤即流水线。设备管理主要有设备接入和设备管理以及设备监控。资源管理主要有图片、视频、魔法表情、算法模型包资源管理。结果管理是对自动化测试运行出来的结果数据进行分析并在前端提供定制化可视化展示,有日志、邮件通知、图像对比、视频对比、计算算法结果并提供测试报告等功能。目前此平台已投入使用,公司传统的方式是采用半自动化测试过程,需要人工亲自做一些步骤,才能使测试任务顺利进行。而自动化测试的实现无需人工干预,帮助节约了许多的人力和财力成本,得到了公司人员的一致认可,并且目前陆续有很多业务开始接入平台。
基于Jenkins的云原生应用的持续集成设计和实现
这是一篇关于Jenkins,Kubernetes,持续集成,自动化测试,测试结果可视化的论文, 主要内容为随着敏捷开发的流行和云原生技术的逐渐成熟,可持续的、快速迭代的软件过程成了当今主流开发规约。尤其在互联网行业,机会稍纵即逝。这些原因都要求软件开发公司对市场不断变化的需求进行快速和准确的响应。既要实现软件的快速交付又要提高交付的质量,持续集成应运而生。本文基于Jenkins持续集成工具和Infrabox云原生持续集成工具,结合云原生项目的特点,对持续集成系统进行了整体设计和实现。具体体现在持续集成系统的五个部分(代码版本管理、自动化构建、构建结果通知、自动化测试和测试结果可视化)的设计和实现上。最终将持续集成系统用于云原生应用的开发和管理上。实现了对组件代码库和组件管理代码库的自动化构建,并及时通知构建结果。将构建好的应用自动化部署在Kubernetes集群上进行测试。测试结果从不同维度上进行可视化展示。每当组件代码版本发生变更时就会进行自动化集成、测试和反馈,及早验证代码变更和暴露问题,规范了开发流程,提高了开发效率。通过对云原生应用在开发过程中进行持续集成实践证明了本文设计的持续集成系统的有效性和可靠性。本文设计和实现的持续集成系统能够满足基于微服务架构的云原生应用在开发过程中的持续集成需求,但还有一些需要完善的地方。针对部署在公有云上的云原生应用,每次从构建开始到测试结束整个流程的资源消耗较大,可以优化测试环境并行执行测试作业或者将测试作业进行分组执行来进一步提高持续集成效率。
某公司项目管理平台下的产品资料模块的设计与实现
这是一篇关于项目管理平台,持续集成,产品交付,产品资料的论文, 主要内容为在互联网与云计算快速发展以及全球化的时代背景下,各企业的产品需求、软件开发、产品更新节奏越来越快,软件的规模也越来越大,随之而来的是企业对于软件开发以及项目管理的重视程度越来越高,同时也对产品资料的管理要求越来越高。但是传统模式下项目管理、软件开发经常会遇到各种问题,比如:人工手动部署导致开发环境、测试环境和生产环境不一致的情况;系统无法动态实时地调整、产品版本更迭不及时等,这样会导致项目开发成本增加,从而给企业造成巨大经济损失。因此企业客户急需一个能够进行持续集成、持续交付并且提供能够管理维护项目全生命周期资料功能的项目管理平台。本文的项目管理平台是一个给用户提供云上产品交付的平台,在此平台上用户能够对产品进行持续集成、持续交付。此平台能够对项目从开始到结束所经历的各个阶段进行管理,包括对项目立项、需求、开发、测试、部署以及产品资料的管理。本文的主要内容是项目管理平台下产品资料模块的设计与实现,通过对用户的需求以及工作中遇到的实际问题的分析,进行了包括业务流程、功能以及非功能方面的分析;然后根据需求分析进行产品资料部分的总体设计,包括产品资料的层次架构设计、功能模块设计和数据库设计;在总体设计基础上对产品资料的部分功能进行了详细设计与实现,以及在功能实现的过程中遇到的问题及解决方案,最后对项目管理平台下产品资料进行了测试,包括功能测试和非功能测试。本文的项目管理平台已经完成所有模块的开发与测试工作,包括产品资料模块的开发与测试,并且已经为多家企业客户提供服务,用户可以随时随地登录此项目管理平台,查看产品交付、维护情况以及全生命周期的项目资料。
客服平台基于互联网+的架构治理
这是一篇关于互联网+,平台架构,微服务,组件,敏捷,持续集成的论文, 主要内容为随着互联网+的热潮来袭,特别是移动互联时代的开启,互联网巨头凭借流量的红利以及在新技术应用上形成的壁垒,势头迅猛,迅速发展并超越传统行业,作为传统行业的信息系统领域,如何能顺应时代的发展,尽快消除和新兴互联网公司间的技术差距,提升自身信息化平台能力,以互联网新兴技术来驱动传统企业发展和进步,也就是让互联网+来赋能企业。本次论文时间我希望能通过互联网技术的应用来提升公司系统的架构能力,积极拥抱新一轮的技术变革。目前公司的客服平台(主要应用于保险远程客服服务,核心功能是支持车险报案远程客服人员作业)平台架构老旧,难于扩展且维护风险和成本高,针对客服平台的痛点,我提出采用互联网微服务架构对平台进行改造升级的设想,希望利用微服务的架构思想和微服务架构框架将现有系统从业务及功能层面进行拆分,拆分为多个系统组件,再利用微服务框架技术将拆分后的系统组件进行组合来提供业务服务。通过对于目前互联网公司开源的微服务框架的深入了解和研究对比,我掌握了利用开源框架搭建微服务平台的方法和所需软硬件支持。通过对系统功能的不同方式的分解和微服务架构搭建反复尝试,找到了大体量应用向微服务架构转换的详细设计方案和可行实施路径,通过系统化的构建与实现,成功完成了系统架构的转型升级,证明了我提出的设计方案和实施路径的可行性,对存在同样问题或困惑的企业或个人都具备一定参考性。在本次架构优化升级的同时,我也在系统开发的多个方面积极尝试互联网的技术和实践。如开发过程尝试敏捷开发和持续集成,结果证明对开发效率提升有极大的帮助,在一些具体服务开发过程中通过一些互联网技术的引入,也大大增强了系统服务的能力和水平。通过架构优化和升级,成功将客服平台的车险报案系统拆分为超过10个独立的微服务组件,各微服务间资源独立,每个微服务可单独提供服务。系统架构实现高内聚和低耦合目标,同时实现打包部署从速度的倍数级提升,同时也将系统交付周期提升为两周,客户进线识别,车险报案受理,线上线下调派等核心服务能力显著提升。
企业持续交付流水线平台执行引擎子系统设计与实现
这是一篇关于持续集成,持续交付,任务调度,任务执行的论文, 主要内容为现代软件的开发大部分都采用敏捷开发模式,软件迭代周期大大缩短,每天都要进行持续集成,继而发布新的版本。每次的软件发布都有一系列需要遵循的过程,包括源代码获取、代码扫描、单元测试、代码构建、测试环境部署、接口测试、灰度部署等步骤。如果人工来完成这些步骤,不仅费时费力而且容易出现错误,开发效率也随之降低。在这样的背景下通过建设持续交付流水线平台,可以基于代码变更全自动化地完成测试、构建、部署等一系列行为,降低交付流程中的人工操作和时间成本,减少人为因素造成的错误。目前持续交付系统大都基于Jenkins[Berg,2015](一个开源的自动化服务)进行建设,由于Jenkins自身架构的特点,使其适用于小型开发团队或企业,却很难应对企业内大量的持续集成持续交付任务,所以企业内通过自研流水线任务执行引擎来解决这一问题。本文首先分析了基于Jenkins建设的持续交付平台的优点和劣势,然后分析了自研流水线任务执行引擎的建设目标和需要满足的需求,随之介绍了该执行引擎设计与实现,并对系统进行功能测试和性能测试,保证其满足建设目标和需求。自研持续交付流水线执行引擎不仅能够保留原有Jenkins服务作为执行节点,而且能够集成企业内已有的成熟工具服务,也能够在未来扩展更多类型的执行服务,为不同类型的任务如源代码获取、单元测试、灰度部署等提供稳定可靠的执行服务,轻松应对企业内发布高峰期的持续交付场景。该持续交付流水线平台已经上线半年之久,流水线执行引擎子系统为平台提供高可用、高并发、高性能的任务执行服务,完美的替换了以前基于Jenkins开发的持续集成系统。平台提供持续集成流水线、持续交付流水线、代码合并流水线、提测流水线等,满足日常开发基本需求。不仅如此,用户也可以根据平台提供的基础组件如单元测试等,轻松地创建出自己的流水线,从而不再需要进行以前复杂的人工操作,极大的提高了开发效率。
基于Kubernetes的持续集成与部署系统的设计与实现
这是一篇关于持续集成,Docker,Kubernetes,部署的论文, 主要内容为随着互联网的快速发展以及企业运维项目管理的要求越来越高,传统的开发部署模式存在许多不足之处。比如资源利用率低、难以迁移、强依赖于硬件、无法持续集成、部署困难、配置环境复杂等。这种传统开发模式已经不能满足用户以及企业需求,大量企业开始寻求新的开发部署模式。为了解决上述问题,本文设计并实现了一个持续集成与部署系统,采用一种新的运营管理模式来替代传统的部署模式。首先对系统进行需求分析,将系统分为五大功能:首页功能、概览页功能、设置功能、构建功能、部署功能,并通过用例图的形式对每个功能进行详细分析。然后在需求分析的基础上对整个系统进行设计,包括系统架构设计、系统具体功能设计、系统数据库设计。整个系统可以分为供用户操作与查看信息的交互层、具体功能实现的业务层以及数据层。在业务层中采用微服务架构的思想,按功能模块又可以分为不同的服务,其中sab服务的功能是对交互层的数据进行保存以及下达部署命令,med服务的功能是完成构建得到可部署镜像,groo服务的功能是接收sab服务的部署命令执行具体操作。在需求分析以及设计的基础上,又从代码级完成了功能的实现。在具体实现时,采用了Git Lab CI工具实现持续交付、持续集成的功能,在每一次执行git push或者merge时,便会自动集成代码到指定分支。采用Docker技术在构建时完成拉取镜像、生成可部署镜像、推送镜像功能。然后采用Harbor镜像仓库来管理构建产生的镜像以备部署时使用,部署功能是通过调用Kubernetes的API实现。本文在最后通过设计测试用例以及测试流程对各个功能进行测试,通过对测试结果的分析,判定该系统可以正常使用,该系统实现了构建以及部署界面UI化,避免出现配置复杂环境等问题,减少企业开发以及运维成本,大大提高开发效率。
CI平台下的Web自动化测试的研究与实现
这是一篇关于CI平台,持续集成,Selenium,自动化测试的论文, 主要内容为伴随着互联网技术的飞速成长,互联网应用已经在不知不觉间浸入我们的工作和生活中,并产生了深远的影响。现在大多数Web应用都以B/S架构为主,小到我们的博客、空间,大到各种大型网站,Web应用正为我们的生活和工作带来巨大的方便。但是为了满足市场的新需求,Web应用的系统更新越来越快,用户的基数也越来越多,WEB应用程序系统的结构更加复杂,所以对Web应用的测试已经不能再仅仅依靠单纯的手工测试来检查和验证该该系统是否能够正常运行。在浏览器更新换代十分频繁的当下,对WEB应用的测试还需要站在用户的角度验证其在不同平台的浏览器上的可用性进行测试,达到提高软件的质量的目的。Martin Fowler是敏捷开发的创始人之一,他认为两次集成之间间隔的时间越长,所增加的bug数目就越难把控,解决这些bug所需要的人力和资源也越多。他指出,项目bug的增加与时间的平方成正比。所以尽早的将测试的结果反馈给开发人员才能更快的解决问题。为了提高WEB应用的测试效率,降低成本,在手工测试的基础上引入自动化是大势所趋。本文从介绍软件测试的技术、内容和引入自动化测试的原因开始,在明确了自动化测试的可行性及必要性的前提下,对一些主流的自动化测试技术进行了简要的介绍。最后,结合项目分析了基于CI(Continuous Integration,持续集成)平台的自动化测试的相关技术并对这些技术的使用方法进行了细致和详细的说明。这些技术包括如何用selenium录制并导出测试脚本;配置Tomcat服务器;用Ant实现子模块关联;如何将所有功能串联起来,集成到Jenkins上实现自动化测试的全过程。在了解基础的前提下对项目进行需求分析,并从测试计划开始详细介绍了如何实现基于CI平台的Web自动化测试。本文的研究对象是Neuvideo项目,该项目分为前台视频网站和后台管理系统两个部分,目标是给用户提供一个自己制作视频网站的模板和技术支持。这个项目的开发周期长,经常需要交付并添加新功能,在有限的时间内可以留给测试人员部署和测试的时间很紧张。所以为了提高整个产品的开发进度并且保证产品质量,在该项目中引入自动化测试的任务迫在眉睫,本次研究的主要任务也是为了实现Neuvideo平台自动化测试,并完成持续构建、持续测试、持续代码质量监控的自动化测试环境。通过不懈的努力,完成了自动化测试的Neuvideo测试项目每天都可以生成测试报告,不仅测试人员可以第一时间看到反馈,连开发人员和项目经理都对产品的质量有了信心。每次产品做了更新,只需要编译一次自动化测试,就可以确认新作的修改有没有对原来的功能产生影响,提高了测试的效率。
企业持续交付流水线平台执行引擎子系统设计与实现
这是一篇关于持续集成,持续交付,任务调度,任务执行的论文, 主要内容为现代软件的开发大部分都采用敏捷开发模式,软件迭代周期大大缩短,每天都要进行持续集成,继而发布新的版本。每次的软件发布都有一系列需要遵循的过程,包括源代码获取、代码扫描、单元测试、代码构建、测试环境部署、接口测试、灰度部署等步骤。如果人工来完成这些步骤,不仅费时费力而且容易出现错误,开发效率也随之降低。在这样的背景下通过建设持续交付流水线平台,可以基于代码变更全自动化地完成测试、构建、部署等一系列行为,降低交付流程中的人工操作和时间成本,减少人为因素造成的错误。目前持续交付系统大都基于Jenkins[Berg,2015](一个开源的自动化服务)进行建设,由于Jenkins自身架构的特点,使其适用于小型开发团队或企业,却很难应对企业内大量的持续集成持续交付任务,所以企业内通过自研流水线任务执行引擎来解决这一问题。本文首先分析了基于Jenkins建设的持续交付平台的优点和劣势,然后分析了自研流水线任务执行引擎的建设目标和需要满足的需求,随之介绍了该执行引擎设计与实现,并对系统进行功能测试和性能测试,保证其满足建设目标和需求。自研持续交付流水线执行引擎不仅能够保留原有Jenkins服务作为执行节点,而且能够集成企业内已有的成熟工具服务,也能够在未来扩展更多类型的执行服务,为不同类型的任务如源代码获取、单元测试、灰度部署等提供稳定可靠的执行服务,轻松应对企业内发布高峰期的持续交付场景。该持续交付流水线平台已经上线半年之久,流水线执行引擎子系统为平台提供高可用、高并发、高性能的任务执行服务,完美的替换了以前基于Jenkins开发的持续集成系统。平台提供持续集成流水线、持续交付流水线、代码合并流水线、提测流水线等,满足日常开发基本需求。不仅如此,用户也可以根据平台提供的基础组件如单元测试等,轻松地创建出自己的流水线,从而不再需要进行以前复杂的人工操作,极大的提高了开发效率。
微服务架构协同开发规范与质量管理系统的设计与实现
这是一篇关于微服务,协同开发,持续集成,数据管理,监控告警的论文, 主要内容为随着近年软件体系架构的发展,微服务已经渐渐替代单体架构、垂直架构、SOA等成为软件体系架构标准,许多企业和开发者向微服务架构迁移。然而微服务也有其短板,为了实现更细的粒度和更低的耦合,需要对服务进行拆分,对服务之间的依赖进行管理,由此造成了诸多问题,例如因为服务拆分解耦导致服务的数量过多,从而引发的管理混乱。同时,服务的稳定运行离不开数据的采集与分析,著名的开源项目Prometheus等在数据的采集与管理上有着公认的良好表现,但是管理完全依赖该服务的维护人员,导致其需要花费大量时间在这种重复性工作上。对于这些问题,本文将从三部分探讨并解决:合理的协同开发规范设计、高效的发布流程管理以及面向开发人员的数据采集及告警管理。首先在协同开发规范方面,本文通过对分支的功能进行定义并控制各个分支的合并、发布权限来统一管理,以此解决分支管理混乱的问题。该规范目前已在作者实习企业内部作为新员工入职文档使用,显著提高了开发人员协同开发效率。在发布流程方面,本文针对互联网企业的特殊分工机制,通过合理的权限管理方式进行服务的发布、测试、审核及报告,将服务版本管理、版本的依赖关系、不同部门的协同等工作实现自动化。该功能已在作者实习企业推广使用,已经完全替代原有的人工上线流程,所有环节权责分明且可追溯。在数据采集与告警方面,本文将通过更加人性化的设计,将数据采集与告警规则配置进行合理的封装,使开发人员不需要投入过多的学习成本,就可以自行进行数据采集与告警配置,目前该功能已经正式投入使用,运行状态良好。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码港湾 ,原文地址:https://bishedaima.com/lunwen/45618.html