云效有哪几种形式自建测试自动化云效(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://blog.csdn.net/qian772/article/details/144428855
2.在线协作平台有哪些?分享12款–PingCode企业微信 (WeCom)是腾讯的一个企业通讯和协作平台,构建在微信的基础上,使其与中国最大的社交网络无缝对接。它特别适合希望利用微信生态系统进行商务沟通的企业。企业微信支持消息、会议、办公自动化和第三方服务集成。推荐指数为4/5,官网是work.weixin.qq.com。 https://docs.pingcode.com/blog/168069.html
3.云上协同每时每刻 · 高效协作 立即注册 下载突破时空限制,引领协同办公 极致流畅的沟通体验 面向组织的、操作系统级的协同平台 为政府企业提供安全可信的云上协同多平台支持 只为时刻准备着的你 默认下载专区下载 温馨提示 已安装 3.x 版本用户:请卸载老版本,重新安装 Windows版下载 Mac版下载 Linux版下载 扫码下载https://www.ccwork.com/
4.招生网代理平台线上招生招生合作公司360育学网作为一家专业的国内领先的教育培训代理招生平台,招生代理网平台汇集了很多家优秀的培训机构和代理招生合作课程,有专门负责的招生老师来处理代理招生信息发布平台的信息,提供最全最新的招生代理人才,已为上万名学员免费推荐课程和报名咨询服务,是合作伙伴招生的左https://yx.360yuxue.com/
5.教学案例:《管理学》团队协作的线上线下多元化教学设计与创新实践本课程结合线上教学平台和线下授课的方式,提供学生管理理论概念、理论视频、企业案例、管理学试题、相关竞赛作品与项目范例等多元化教学资源;通过线上课程平台的学习任务点设置,督促学生做好课前预习与课后复习,课堂中则能够有更多时间进行互动讨论,以“三力两性”的特色来构建丰富多样且互动性强的核心课程,具体的多元化http://glxy.zsc.edu.cn/jxdt/1epo1ue6p7t8r.shtml
6.Google线上工作平台全新亮相,Gmail新等五个产品图标换新!Google在2020年10月6日宣布,其在订阅基础上提供的云计算生产力和协作软件工具和软件G Suite将正式采用全新的名字「Google Workspace」。根据 Google 的信息,全球https://www.logonews.cn/google-workspace-new-logo.html
7.兼职编辑工作哪里找?线上平台推荐线上平台推荐寻找兼职编辑工作的途径已经不再局限于传统的线下渠道。越来越多的线上平台为自由职业者和兼职工作者提供了丰富的机会。无论你是经验丰富的编辑,还是刚刚入门的新手,都能在网上找到适合自己的兼职编辑工作。本文将为你推荐几个值得尝试的线上平台,并简要介绍它们的特点和使用方法。https://www.jianshu.com/p/900d664384c4
8.zoom线上会议平台5.14下载zoom线上会议平台5.14下载安装是移动设备上可用的视频会议软件,轻松高效地进行办公工作。该软件还提供了在线面对面的沟通交流功能,对于远程办公和团队协作来说可能非常便捷和高效。它可以帮助用户随时随地进行会议,有需要的朋友快来下载吧。 zoom线上会议平台特色 https://www.fxxz.com/azsoft/688885.html
9.远程办公是什么意思?2024年10大远程办公软件盘点每日科技网员工可以通过浏览器进行线上协作,不需要专门下载客户端,让你可以不受地点和时间的限制,随时开启高效创作、编辑和管理文档。 Slack——跨境协作平台 相比于腾讯文档在国内使用范围较广,Slack更适用于员工分布在全世界各地的企业使用。 作为一款全球性的协作平台,Slack支持实时聊天,文件共享,团队通知和集成应用,可以极大的https://www.newskj.org/kejixun/177748.html
10.OneConnect一点通线上服务平台埃克森美孚化工OneConnect 一点通线上服务平台让客户与我们更轻松地无缝连接、协作和创新。这个平台是埃克森美孚化工提供更好的客户体验的重要里程碑。https://www.exxonmobilchemical.com.cn/zh-cn/resources/online-customer-service
11.视频工厂AIGC线上平台AIGC人工智能编辑部视频工厂为视音频内容生产制作、媒资管理、文件转码提供统一平台,强化媒资管理与视音频生产的高效协同,满足跨区域视音频生产协作需求,优化生产流程,提升生产效率。https://aigc.cctv.com/products/spgc/index.shtml
12.智东西早报:广州签发全国首张微信身份证新华社AI媒体平台自动写招股书显示,2017年上半年营收为19.66亿元,营业利润为1.97亿元。科沃斯机器人此次拟募集资金9.12亿元,主要用于三个领域,分别是年产400万台家庭服务机器人项目,机器人互联网生态圈项目、国际市场营销项目。报告期内,科沃斯机器人线上销售收入主要通过天猫商城、京东等第三方电商平台实现。https://zhidx.com/p/103794.html
13.嘲化学习——适应这个时代的学习方式随着培训技术的发展,场景化培训应更多通过线上平台进行。 线上:构建云学习平台 目前,很多企业主要是通过构建云学习平台,让学员利用碎片化时间将自己80%的能力提升放在云学习平台上完成。 例如华为,华为将云学习平台称为“三朵云”:第一朵是知识云,里面包含大量的标准化知识内容;第二朵云是方案云,包含各场景下的解决https://www.polyv.net/news/2018/01/hy0175/
14.合肥警方摧毁一网络招嫖平台,线上线下全链条打击抓获上百人近日,合肥市公安局蜀山分局在扫黄禁毒“百日攻坚”专项行动中,多警种多部门联手协作,主动拓展攻坚范围,深挖幕后违法犯罪,成功摧毁一特大OTO模式网络招嫖平台,依法刑事拘留线下组织卖淫团伙成员47人、线上招嫖平台负责人8人,行政拘留卖淫嫖娼违法人员71人,依法关停涉及全国13个省市的招嫖网站28个。 https://www.thepaper.cn/newsDetail_forward_2437760
15.电子商务的实习总结(精选12篇)除了线上平台的运营外,我还参与了线下门店的数字化转型工作。通过引入智能导购系统、移动支付等新技术,我们提升了顾客在门店的购物体验,并实现了线上线下数据的互联互通。此外,我还协助门店开展了O2O(线上到线下)营销活动,如扫码领券、线上预约线下体验等,这些活动有效促进了线上线下的融合和互动。 https://www.jy135.com/shixizongjie/1478052.html
16.有效保障线上教学效果的“五结合”原则线上定时教研以集体教研的形式进行,全员参加,固定在每周一上午10点至11点,研讨主题明确,总结上周线上授课经验,探讨本周课程教学重点难点,安排下周教学工作,分析在线考试试卷与成绩等。线上定时集中教研有固定时间、固定平台、固定主题,每次做到留存“一表二图”,即集体备课记录表、集体备课活动截图、集体备课上传文昌https://yun.xgjy.cn/index.php?r=space/org/content/view&id=61893