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

18|元数据模型(二):小Job模型构建大蓝图

你好,我是柳胜。
上一讲,我们分析了传统自动化测试设计态和运行态存在的鸿沟,并且提出了一个更科学的 Job 模型的设想。如下图所示,这个模型包含七个核心属性,其实也是后续在设计自动化测试案例时,我们需要考虑的七个方面,也是后续开发中要去实现的 Interface(接口)。
模型属性我们上一讲开了个头,重点讲了 Dependency 和 TestData,Dependency 描述业务关联性、阻断错误、缩短执行时间,TestData 可以实现一份代码多组数据运行,提升自动化测试的 ROI。
今天咱们继续分析剩下的模型属性,勾勒整个 Job 模型的全貌,这样你就能进一步掌握自动化测试设计建模的利器了。

模型属性

自动化测试有一个令人头疼的问题——不稳定,经常失败,有没有办法通过设计攻克这个难题呢?
自动化测试 Job 像开发的微服务一样,都是独立的运行单元,我们可以通过给每个 Job 增加一个 TestConfig,它的数据表达类型是 HashMap,每一条记录代表一个配置,我们通过修改配置来控制 Job 的运行。结合实践,有三个关键配置,可以增强自动化测试的健壮性和诊断性,分别是:日志级别、超时时间以及重试次数
Log 是诊断程序运行问题最有力的工具,自动化测试也不例外,通过定义不同的 log 级别和相应输出信息,把它应用在不同环境下,可以形成一个自动化测试诊断策略。比如,Log level 如果是 debug 级别,抓取环境信息、屏幕截图、运行时堆栈,用于在自动化测试开发阶段做调试。Error 级别记录出错 trace 和调用 Job 链状态,用在自动化测试生产运行环境。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了一个更科学的Job模型,该模型包含七个核心属性,分别是Dependency、TestData、TestConfig、Log_Level、TimeOut、Retry_Number和Document。通过对这些属性的分析,文章强调了如何通过设计来解决自动化测试的不稳定性问题,从而提高自动化测试的健壮性和诊断性。作者指出,Job模型描述的是一个同构的测试任务,既可以是一个小测试案例,也可以是一个大测试需求,通过组合编排来完成。此外,文章还介绍了Job之间的组合关系,以及在Job运行过程中的四条规则。最后,作者强调了在Job模型中,关注的是设计,而工具或框架是Job实现层面所关注的内容。整体而言,本文通过深入的技术分析,为读者提供了关于自动化测试设计建模的利器,帮助读者更好地理解和应用Job模型。 文章总结了Job模型设计的四大优势,包括高可复用的自动化测试模块化设计、低成本的扩展和重构、动态的生成执行计划以及有助于后续的度量和改进。通过对七个属性的详细解释,读者可以清晰地了解Job模型的设计原则和优势。此外,文章还介绍了Job模型的层级能力,以及如何利用Job模型完成自动化测试的设计。最后,读者被鼓励使用测试微Job七要素模型描述自己正在使用的测试案例,并与作者交流讨论。 总的来说,本文通过深入的技术分析和实例演示,为读者提供了关于自动化测试设计建模的全面指南,帮助他们更好地理解和应用Job模型,从而提高自动化测试的效率和质量。

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

全部留言(9)

  • 最新
  • 精选
  • Hedy
    API测试和UI自动化是如何聚合呢 好奇 😯

    作者回复: 在技术上没有问题的,可能最大的障碍是过去的经验框框。如果你的产品,既有SDK API用户,又有UI用户,这种混合交叉测试就是一个有效的测试场景。

    2022-06-28
    2
  • 羊羊
    API测试和UI自动化聚合是不是就是前面讲到的“皮下测试”?例如需要测试用户的VIP的状态改变,使用API去更改用户状态,因为要等到用户VIP过期是不现实的,然后用UI层面测试检查在UI层面用户的状态是不是正确变化。 个人理解,测试Job模型是设计模式“依赖倒置”原则在测试设计中的体现。

    作者回复: 首先 测试Job模型是设计模式“依赖倒置”原则在测试设计中的体现 ---------------- 理解非常到位! 另外,皮层通常在API这一层,但并不总是这样的。准确来说,应该是距离UI最近,ROI最高的一层。它也有可能就在前端程序里,举个例子,如果你的前端React通过JS SDK来调用后端的服务,那么这个JS SDK可以作为皮层。

    2022-08-01归属地:日本
    1
  • On
    老师,大数据项目的测试,有哪些更适合大数据特点的优秀的工具/框架? 本节所讲的微测试 Job 模型是否同样适用于大数据项目的软件测试?谢谢老师。

    作者回复: 大数据测试的思路,可以把测试用例的运行嵌入到ETL的流程里,实现数据转换验证,监控告警。 我用过的有Great expectation,觉得还不错,你可以试试

    2022-07-08归属地:日本
    1
  • On
    老师,目前这个微测试 Job 模型有已经落地实现、稳定运行的框架或工具吗?

    作者回复: 有,我们微信联系。

    2022-07-08归属地:日本
    1
  • 一默
    老师,我感觉,现在定义的这些就像是面向对象的一个变种。而job就是类。就是在把软件开发的概念引入到软件测试中,把测试做为一个系统在设计和实现。不知道我理解的对不对。请老师指教。谢谢

    作者回复: 你理解得很对。自动化测试设计本质上是一个软件系统的设计!

    2022-05-29
  • lisa
    testData和input的数据结构有什么区别?

    作者回复: testdata是Job自带的数据源,各个Job的Testdata是不相通的。Input和Output是Job之间交互的数据。这个就像test的global数据一样,但那是隐式的交互。我们现在把它抽出来,显式的去定义。

    2022-05-05
  • woJA1wCgAA3aj6p1ELWENTCq8KX2z...
    我们的平台设计跟老师说的吻合呢

    作者回复: Great man think alike!

    2022-05-01
  • ifelse
    学习打卡
    2024-02-22归属地:浙江
  • 发现生活的美好
    使用Job模型构建出来的自动化项目 一般用在什么场景下呢?
    2022-11-03归属地:北京
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部