云效有哪几种形式自建测试自动化云效(ApsaraDevops)

作为面向企业开发者的DevOps平台,云效提供了丰富的能力,帮助大家在DevOps流程中落地测试自动化实践。

简单来说,企业自建测试自动化体系,分为三种形式:

1.测试执行工具,如robot

2.测试用例,如.robot文件

3.测试结果和报告,如执行完生成的log.html和report.html

对于一个测试自动化体系,往往还需要加上:

1.调度和执行平台

2.结果分析与统计报表

3.测试结果通知能力

基于云效,整个的架构是这样的。

1.测试自动化用例存储在云效代码平台的Git仓库中

2.用于执行测试自动化的测试步骤,基于云效的自定义step能力创建

3.触发和串联代码、构建和自动化测试的云效流水线

4.通知机制(钉钉消息)

5.针对质量情况的数据报表,可以直接显示在流水线测试结果中,也可以将数据发送给自建的数据报表服务展示

以RobotFramework框架为例,在云效上接入开源测试自动化工具有以下几步。

1.选择或编写对应开源测试自动化工具的flowstep

云效内置了主流开源测试自动化工具的支持(TODO),同时提供flowcli工具,帮助企业定制化地实现符合自己要求的测试自动化组件。如何通过flowcli实现并发布一个flowstep,请参见参考资料。

这里,仅以RobotFramework为例,对其关键部分做一下说明。

首先通过flowstepinit命令初始化一个flowstep组件的项目。

1.1执行的环境和命令

在step.yaml文件中,image为测试执行的环境镜像,这里是registry.cn-hangzhou.aliyuncs.com/feiyuw/flow-robotframework:1.0,镜像的内容在Dockerfile里面定义。在items中添加type为Shell的输入框,用于设置执行命令,这里默认值为robot-LTrace-drobot_logs.,当前目录“.”即为代码所在目录。

#...image:registry.cn-hangzhou.aliyuncs.com/feiyuw/flow-robotframework:1.0items:-label:执行命令name:STEP_COMMANDtype:Shellvalue:|#NOTE:outputdirectoryshouldberobot_logsrobot-LTrace-drobot_logs.#...1.2红线配置

首先在step.yaml中定义红线配置组件,这些组件会在流水线配置步骤的时候显示给用户。

items:-label:红线信息name:CHECK_REDLINEStype:addable_grouprules:-require:falseadd_button:type:iconicon:plustext:增加红线tip:icon:question-circledescription:红线校验失败步骤标记为失败template:items:-name:redlinelabel:红线position:flattype:custom_redline_dropdowndatamap:'[{"key":"PassRate","type":"GE"}]'rules:-requires:false

另外在step.sh的最后添加红线检查部分,如:

redlinePassed:成功:$STEP_ROBOT_PASS:SuccessFailed:失败:$STEP_ROBOT_FAILED:ErrorPassRate:成功率:$STEP_ROBOT_PASSRATE:Defaultflowstep编写及调试完毕后,publish到当前企业中。

2.在代码库中添加测试自动化用例

对于针对整个产品或一个子系统的自动化测试,我们建议自动化测试用例保存在单独的代码仓库中;而对于针对某个特定应用的自动化测试,我们建议其测试用例保存在该应用的代码仓库中,并与开发使用同一个分支(推荐)。

将自动化测试用例与应用代码在同一个代码库中管理,有许多好处:

1.测试用例与代码互相匹配且是最新的,让自动化测试在开发阶段就可以及时介入

2.直接复用开发的分支模式,不用考虑自动化用例的版本管理

3.开发和测试基于Git代码库紧密协作,方便落地ATDD这样的优秀实践

4.容易集成到流水线中,当测试代码或者开发代码变更后都能快速被执行和反馈,加速问题的定位和修复

3.添加测试自动化节点到流水线

打开持续集成流水线,如果没有,在flow上创建一个。

3.1编辑流水线,添加一个空白任务

3.2添加自定义步骤,“RobotFramework测试”

3.3配置执行命令和红线

4.上传测试报告到云效,以在云效流水线执行结果中展示

4.1编辑第三步的测试自动化节点,添加一个步骤

4.2配置测试报告目录(这里是robot_logs)和测试报告入口文件(这里是report.html)

5.同步测试结果到自建的报表系统

有些时候,我们需要对测试结果进行进一步的统计分析,此时,仅靠测试自动化工具提供的报告就无法满足了。通常,我们会自建一个报表系统。那么,云效中执行的测试自动化结果如何上传到我们自建的报表系统呢?

5.1确保报表系统能够被云效访问到

由于网络问题,云效无法访问我们建在私有网络环境中的报表系统,要求报表系统开放公网访问接口。为了安全,我们建议仅开放必要的接口,同时做好IP白名单防护。

5.2在flowstep中添加上传报告步骤

打开步骤1的flowstep,编辑step.sh,添加上传报告步骤。

注意:该步骤需要放在redline检查之前,同时建议传递的信息包括:测试结果、代码分支、代码版本、提交者、流水线名字等。

#...#sh-ex$WORK_SPACE/user_command.shbash-c"$STEP_COMMAND"output=`python3/root/parse_output.py$OUTPUT_XML`STEP_ROBOT_PASS=`echo$output|awk-F,'{print$1}'`STEP_ROBOT_FAILED=`echo$output|awk-F,'{print$2}'`STEP_ROBOT_PASSRATE=`echo$output|awk-F,'{print$3}'`#uploadtestresulttoreportserverpython3/root/upload_to_report_server.py$OUTPUT_XML$CI_COMMIT_REF_NAME$CI_COMMIT_SHA$EMPLOYEE_ID$PIPELINE_NAME$BUILD_NUMBERredlinePassed:成功:$STEP_ROBOT_PASS:SuccessFailed:失败:$STEP_ROBOT_FAILED:ErrorPassRate:成功率:$STEP_ROBOT_PASSRATE:Default最后的流水线大致是下面这个样子:

对于已经自建Jenkins等工具用于测试自动化调度执行,甚至在Jenkins上进行了二次开发和定制的团队,或者对于像ioT开发这样有特殊环境要求的应用,复用现有的工具资源更为经济。为此,云效提供了与客户现有Jenkins服务无缝对接的能力,帮助企业通过串联起研发测试。

1.确保自建Jenkins能够被云效访问到

自建Jenkins服务需要支持公网访问,以便云效能够访问并触发对应的任务。同样,为了安全考虑,建议仅开放必要的接口,并开启IP白名单防护。

2.添加Jenkins任务节点到流水线中

编辑云效流水线,添加一个任务节点,选择Jenkins任务。

接下来,配置Jenkins地址、认证方式、对应的Job名称,以及触发参数(上游的构建镜像)。

3.查看结果和统计报表

流水线被执行后,结果信息会同步到Jenkins任务组件上,用户可以在云效流水线运行结果上直接跳转到JenkinsJob日志。

对于统计报表,由于这种方式下,云效不会保存执行任务的任何数据,建议在Jenkins任务中完成数据的上传等工作。

如果开源测试自动化工具无法满足测试诉求,又有定制化的调度、触发、管控等要求,部分企业会选择自建测试自动化平台。对于这种情况,如何与云效有机整合起来,做到研发一站式呢?

解决的方法和集成开源测试自动化工具类似,所不同的是,我们的自建测试自动化平台需要对云效暴露两个接口:

1.触发测试执行

2.获取测试结果

实现方式与集成开源测试自动化工具的方法类似,主要是配置好step.yaml和step.sh。

step.yaml中配置自建测试平台的地址,以及测试用例的筛选参数,如:

1.触发测试平台执行对应测试用例

2.等待测试完成

3.获取测试结果

4.验证红线卡点

如:

#sh-ex$WORK_SPACE/user_command.shoutput=`python3/root/run_and_wait_until_finish.py$TEST_PLATFORM_HOST$SUITES$EMPLOYEE_ID`STEP_ROBOT_PASS=`echo$output|awk-F,'{print$1}'`STEP_ROBOT_FAILED=`echo$output|awk-F,'{print$2}'`STEP_ROBOT_PASSRATE=`echo$output|awk-F,'{print$3}'`redlinePassed:成功:$STEP_ROBOT_PASS:SuccessFailed:失败:$STEP_ROBOT_FAILED:ErrorPassRate:成功率:$STEP_ROBOT_PASSRATE:Default其中run_and_wait_until_finish.py的实现步骤大致如下:

2.添加测试自动化节点到流水线

在流水线上添加空白任务节点,在其中添加一个步骤,选择前面我们自定义的flowstep(记得publish到对应的企业中)。在步骤中配置好测试平台地址和测试用例,并设置好红线信息。

3.查看测试报告

在测试节点添加报告上传步骤,测试报告目录填“report”,测试报告入口文件为“index.html”。

4.数据统计与报表

在流水线执行结果中可以看到通过率等summary信息,详细的统计与报表建议在自建测试自动化平台内实现。

THE END
1.如何分析自动化技术的市场前景?这种市场前景如何影响行业发展?自动化技术作为当今科技领域的重要组成部分,其市场前景备受关注。分析自动化技术的市场前景需要综合考虑多方面的因素,同时,这种前景也对各行业发展产生了深远的影响。 首先,从需求方面来看,随着全球经济的发展和人们生活水平的提高,对于高效、精准和高质量的生产与服务的需求不断增长。自动化技术能够大幅提高生产效率、降低https://stock.hexun.com/2024-12-08/216045703.html
2.一些高效自动化平台的优势和劣势调研RPA(机器人流程自动化):RPA的优势在于流程化重复化的工作替代了人工,可以7×24小时不间断工作,不容易出错。但是,它的劣势主要是只能处理流程化重复的工作,且对应用层的RPA受第三方限制[6]。 超自动化平台:超自动化平台的优势在于高效性、精准性和智能性。它们能够自动执行重复性、繁琐性任务,减少人力成本,并借助https://blog.csdn.net/weixin_39648954/article/details/136447054
3.互联网智能通关网络技术是什么?湛江智能报关自动化平台系统有什么二、湛江智能报关自动化平台系统有什么好处作用? 云关通智能通关平台,致力于打造一种“互联网+通关”新模式,快准省的互联网智能通关倡导者,致力于让企业实现足不出户轻松智能通关。 云关通智能通关平台上包括企业通关相关的相关业务。包括商检、舱单(海运、公路)、报关、仓储一日游、快件等,都可以在平台上找到。整http://waytogo.com.cn/Article/hlwzntgwlj.html
4.办公自动化系统能给政府部门带来什么好处?能满足部门协调管理此外,办公自动化系统加强了对政府高层领导的监控和管理,加强了管理层对组织的控制,及时有效地监控各部门人员的工作进度,实时全面控制各部门的工作处理状态,及时发现问题,及时解决问题,减少了错误,防止了低效的办公工作。 以上是小编办公自动化系统给政府部门带来的好处的概述。我希望以上内容能对你有所帮助。https://www.hua-mi.cn/forum/t-2065.001.html
5.协同办公自动化的五大好处,中小企业信息化迫在眉睫协同办公自动化的五大好处,中小企业信息化迫在眉睫 现在大多数公司虽然已经使用电脑办公,但仍然停留在较低水平,各种工作审批、工作流转办理仍然采用纸制方式,没有充分发挥网络的优势,没有统一的信息交流平台和协同工作平台,信息传递速度慢、不统一,效率低下。https://www.zhidieyun.com/blog/cooperativec-c-officec-automation
6.自动化运维的好处及实施方法自动化运维的好处在于提高运维效率、降低运维成本、提高系统可靠性和稳定性、加强安全性等方面。在实施自动化运维时,可以借助低代码开发平台、自动化脚本编写、自动化工具的选择与配置等方法。此外,规范化运维流程和建立监控与告警机制也是实施自动化运维的重要步骤。通过以上的措施,企业能够更高效、更稳定地进行系统和网络https://qycloud.360.cn/cjwt/3799.html
7.一篇读懂(用电商API对接电商平台有哪些好处)使用电商API对接电商平台可以带来诸多好处,这些好处涵盖了效率提升、数据同步、功能扩展、用户体验优化等多个方面。下面,我将列举一些主要的好处,并附上简短的代码示例来说明如何通过API实现这些功能。 好处及代码示例 1.自动化商品管理 好处:通过API,商家可以自动化地将商品信息上传到电商平台,无需手动输入,大大提高了https://blog.itpub.net/70042344/viewspace-3056268/
8.办公自动化软件的好处校友会有什么好处钉钉帮助中心为您提供办公自动化软件的好处相关问题的回答,更多办公自动化软件的好处问题相关解答可以注册咨询钉钉人工客服。https://www.dingtalk.com/qidian/help-keyword-92841.html
9.商旅平台是什么商旅平台的功能与好处→MAIGOO知识商旅平台通常与各类服务提供商合作,支持电子发票的开具和管理。员工在预订差旅服务时,可以直接获取电子发票,并通过平台上传报销。这不仅减少了纸质发票的使用,还提高了报销的便捷性和准确性。 (2)报销流程自动化 商旅平台可以将费用报销流程自动化,员工在平台上提交报销申请,系统会自动进行审核和审批。这样可以减少人工操https://m.maigoo.com/goomai/728644.html
10.办公自动化系统对企业管理和发展有何好处?通过办公自动化系统,每位员工都能对公司有更全面更及时的了解,包括公司最新动态、公司规章制度、公司经营理念及决策层的战略思想等,这个信息共享平台对员工来说易参与、高统一、低成本,对提高员工团队精神、团队凝聚力等十分有意义,所以更利于推进企业文化建设。https://www.hzwolf.com/news/rjkf/bgzdhhc.html
11.云简业财「数电票乐企服务方案」来了!直连税务系统!对接乐企平台,实现税号配置、授信额度管理等企业开票管理需求,帮助企业快速过渡到新的开票模式,确保业务连续性。 2全流程自动化 提供从发票开具、流转、作废、红冲到存储、调阅、归档的全流程自动化管理,减少手动操作,加速业务流程,提升运营效率。 3智能票务管理 https://cloud.tencent.com/developer/news/1375805
12.一文看懂:什么是网络自动化?能给NetOps团队带来哪些好处?哪些企业会使用网络自动化? 电信服务提供商是最早采用网络自动化来改善数字网络服务的群体之一,但不同行业的公司都可以从网络自动化中受益。 为什么选择红帽? 因为我们的自动化解决方案遵循了一种博采开源软件之长(创新和协作)并将其整合到企业开源产品中的开发模式。 https://www.redhat.com/zh/topics/automation/what-is-network-automation
13.什么是数字流程自动化(DPA)人们容易将数字流程自动化与业务流程自动化相混淆。两者区别主要在于范围和时机。业务流程自动化是一种用于构建、执行和自动化企业业务流程的方法。然而,DPA通常只发生在流程数字化到一定程度之后。 数字化流程自动化的好处 DPA为企业提供了许多潜在的好处。这些好处包括: https://www.alphaflow.cn/news/600.html
14.docker容器部署小雅alistjacksky的技术博客搭建持续集成平台Jenkins Jenkins简介 Jenkins是开源CI&CD软件领导者,提供持续集成和持续交付服务,有超过1000个插件来支持构建、部署、自动化,满足任何项目的需求。 部署Jenkins Docker hub:https://hub.docker.com/r/jenkins/jenkins/ 运行:docker run -d --name=jenkins -p 8080:8080 jenkins/jenkis https://blog.51cto.com/u_14125/12118944
15.什么是看板:全面了解与应用线上化操作流程:利用飞书开放平台,将原本需要手工记录和传递的操作流程实现线上化。例如,生产线上的设备操作和维护记录可以通过飞书的表单功能实时记录和同步,减少纸质记录的繁琐和易出错问题。 自动数据汇总:飞书多维表格可以自动汇总各个生产环节的数据,管理者可以实时查看生产进度和关键指标,确保生产过程中的各类数据能够https://www.feishu.cn/content/what-is-kanban
16.DeltaV?自动化平台艾默生CN借助全面、通用、先进的工业自动解决方案简化您的操作并提高产生率。 拥抱创新未来 通过集成先进的自动化解决方案、实时分析工具、成熟的控制系统和生命周期服务,DeltaV? 自动化平台可助力实现数据驱动型决策,提高运营性能,同时降低风险与成本,并减少停机时间。 https://www.emerson.cn/zh-cn/automation/deltav
17.免费的CRM软件的利弊免费的CRM系统有什么优势和弊端自动化对于任何团队的成功都至关重要,因为当您专注于战略性工作时,它们会承担繁重的工作,更不用说它们可以降低人为错误的风险并提高利润率。免费的 CRM 提供了一些销售自动化选项,但没有免费的解决方案可以帮助您简化和自动化整个销售流程。 4.你将不得不牺牲定制 https://www.bnocode.com/article/crmbk467.html