自动化测试高手课
柳胜
原甲骨文高级开发经理
16849 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
开篇词 (1讲)
自动化测试高手课
15
15
1.0x
00:00/00:00
登录|注册

22|设计实战(二): 一个全周期自动化测试Pipeline的设计

你好,我是柳胜。
说起交付流水线,你可能立马想到的是 Jenkins 或 CloudBees 这些工具,它们实现了从 Code Build 到最终部署到 Production 环境的全过程。
但 Jenkins 只是工具,一个 Pipeline 到底需要多少个 Job,每个 Job 都是什么样的,这些问题 Jenkins 是回答不了的,需要使用工具的工程师去思考去设计。在实践中,通常是 DevOps 工程师来做这个设计。
既然我们学习了微测试 Job 模型,也知道了它能帮助我们去做自动化测试设计,那用这个模型,能不能帮我们做 Pipeline 设计呢?其实,Pipeline 本质上也是一个自动化测试方案,只不过它解决的场景是把软件从代码端到生产端的自动化。
掌握设计思维是测试工程师向测试架构师的必由之路,假设今天你需要设计一个 Pipeline,把一个 Example Service 的代码,最终部署成为生产环境的一个服务进程。完成这个工作,你不仅能弄明白 CICD 的原理和实现,而且对自动化测试 Job 怎么集成到 CICD,也将了如指掌。

Example Service 的 Pipeline 的目标

还是按照 Job 模型的设计原则,先理出 Pipleline 的第一个根 Job。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了如何设计一个全周期自动化测试Pipeline,从代码构建到最终部署到生产环境的全过程。作者首先指出了Jenkins等工具只是实现了交付流水线的工具,而实际的Pipeline设计需要工程师进行思考和设计。然后,作者介绍了如何利用微测试Job模型来设计Pipeline,将Pipeline分解成开发、测试和部署三个阶段,并详细设计了每个阶段的子Job。其中,开发阶段包括构建和单元测试,测试阶段包括接口测试和系统测试,部署阶段则是将包部署到生产环境。文章还提到了新增Job和扩展Job的情形,以及如何根据需求进行相应的设计和调整。最后,作者强调了每个叶子节点都需要转化为可执行的自动化测试开发计划。整体来说,本文通过实例详细介绍了如何设计一个全周期自动化测试Pipeline,对于想要了解Pipeline设计原理和实现方法的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《自动化测试高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • Rachel
    为啥我感觉老师说的这个job模式的pipline和我们实际实施的持续交付的pipline一样呢?但是理论好像有差别,没太分辨清楚他们的关系

    作者回复: 是的。通过Job模型来梳理Pipeline。实际上Job模型是可以替代jenkins,cloudbee的!

    2022-08-12归属地:日本
    1
  • 羊羊
    以前公司的CI流水线是3个团队共同完成的,每个团队负责一个大的Job,每个Job通过rest api来通信。一个Job完成之后,会通过rest api发送下一个job需要的信息,来激活下流job。但是实践中,总是会遇到各种问题,使pipeline中断,希望老师能分享一些,能让pipeline更加稳定的经验。

    作者回复: “下流job”应该是“下游job”,是吧😄 增强automation健壮性的一般性办法有 1. 加入re run机制,这个你可以参考jdbc connection的机制。一次出错没关系,可以retry多次,直到超过max number 2. 分析常见错误原因,调整参数。比如实例比较慢,可以调大time out。如果是测试账号失效,可以run time创建测试账号。 如果确实是间歇性失败。。。。。那就提交bug,让开发人员修改吧。😂

    2022-08-02归属地:日本
  • 孙中原
    感谢老师的分享。这里我有一个问题,像我们这边设计ci pipeline的时候,是以制品的视角来设计,描述了一个制品从被开发者提交到最终上线,质量等级不断提升的过程。您的Job设计,是以需求的角度来设计的。那么,Job树怎么与CI pipeline结合呢?

    作者回复: job树是自动化测试设计的一种建模方式,CI pipeline本身也是自动化。如果是全新的pipeline设计,不妨用Job模型来完成;如果是和已存的pipeline集成,那就是接口对接了。我们微信上加了,是吧,微信上细聊你的场景。

    2022-07-27归属地:日本
  • swordman
    原先我们jenkins pipeline的设计比较low,直接在绘图工具或纸上,绘制stage,然后就开工写代码了。当pipeline脚本越来越多,参与编写的人也越来越多时,脚本非常难维护,也很难做Review,这估计就是没有设计带来的“附属品”。 今天终于知道pipeline的设计方法了,可以解决以上的痛点,接下来,就是将它用于实践!

    作者回复: 谢谢分享! Job模型就是为了帮助理清思路,做好设计!

    2022-06-22
  • 。。。
    这个git地址登不进去呀

    作者回复: 如果你指的是example git的地址,抱歉,它是mock的。 本专栏唯一Github地址 https://github.com/sheng-geek-zhuanlan

    2022-05-09
  • ifelse
    学习打卡
    2024-02-26归属地:浙江
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部