20|链接工具:要驱动工具,不要被工具驱动
柳胜
你好,我是柳胜。
在上一讲的微测试 Job 设计方法论里,我们把工具打入了“地牢”,但你可能还是对它念念不忘。毕竟设计开发的最后一公里路,Job 模型还是要转换成一个具体工具的自动化测试案例。
战略上我们都不愿束缚思想,被特定工具牢牢“绑票”,而战术上又要用好工具。因此,如何驱动工具实现 Job 模型这个问题,我们就必须解决,要是做不到,我们就不得不走回老路,看着那些工具稳坐 C 位。
我们不想看到这种情况,所以这一讲,我们继续深挖后面这两个问题:
1. 主流的工具框架能不能被驱动?
2. 这些工具框架怎么和微测试 Job 模型对接,执行 Test Job?
解决完这些问题,微测试 Job 模型就算是可以落地了。
Job 模型往哪里放
要想让 Job 模型落地,我们首先要找准它应该落在哪个地方。尤其在业界,自动化测试工具和技术可谓层出不穷、眼花缭乱。我们势必要理清它们之间的关系是什么,才能知道 Job 模型应该放在哪里。
按功能效用,我把各种自动化测试技术划分成了三个层面:框架层、工具层和 Library 层。
先来看框架层,这一层负责自动化测试的设计。其实它主要回答了设计的三个问题:测什么、怎么运行、结果是什么。
问题相同,解法各异。不同的测试理念,最终催生了面向这三个问题的不同答案,比如 TDD、BDD、ATDD。我画了一张表格,帮你更直观地对比它们:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了如何驱动自动化测试工具实现微测试Job模型的方法。首先,作者对自动化测试技术进行了分层,包括框架层、工具层和Library层,并指出Job模型应该放在框架层。随后,详细讨论了JobRunner的实现以及Job的Input和Output机制,提出了多种实现方案。文章还介绍了如何驱动工具,包括对于和框架解耦的工具和和框架深度绑定的工具的处理方式。总的来说,本文为读者提供了清晰的技术指导,使他们能够更好地理解和应用自动化测试的设计和实现。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《自动化测试高手课》,新⼈⾸单¥59
《自动化测试高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- swordman每个Job增加一个权值,可以帮你理出一个冒烟执行链,以下是我考虑的实现方案: (1)在xml的TestJob节点中,定义每个Job的执行权值; (2)在JobRunner.run中,传入要执行的权值; (3)在childJob.run()之前,比较该Job的权值和传入权值,确定是否执行该childJob 不知道是否完整,请老师指正,谢谢!
作者回复: 看出来,你对Job模型的理解已经很到位了!
2022-06-193 - 七星海棠在日常工作中,一套代码在多个环境运行,各环境的数据(如登录信息)是不一样的 ,这个用 DataChannel 如何实现,是否可以考虑加一个环境参数?
作者回复: 完全可以!dataChannel是一个数据的传输载体,数据本身,我们可以根据业务需求定义和扩展!
2022-05-241 - 。。。您好,testng有相对应的Runner类吗
作者回复: 我没有get到这个问题的上下文。您是打算重构TestNG的Runner么?这有JavaDoc https://www.javadoc.io/doc/org.testng/testng/latest/org/testng/TestRunner.html
2022-05-092 - 朝如青丝暮成雪之前使用junit的时候确实遇到case之间相互上下游依赖的情况,但是junit的框架对依赖的处理、以及测试的顺序运行不是很方便。今天看了老师关于job runner的框架,豁然开朗,可以自己去按照job runner的运行方式去实现框架。
作者回复: 开发人员写出了Junit框架,后来测试人员就没有再突破过这个圈圈。IT发展了这么多年,自动化测试设计方法论应该有所突破了!
2022-05-05 - 王小卡JDD模型感觉是不错。 传统简单粗暴的做法直接,将手动测试用例拆解为可自动化的最小用例后再去实现自动化编码。 尽可能减少依赖,每一个用例相对独立。 好处是自动化前期分析设计成本低,方便快捷。 坏处是测试用例覆盖率基于手动测试用例占比计算不是很科学。 JDD这么拆解,势必会提高链路的覆盖率从而提高测试覆盖率。并且我理解的是结合api层和ui层来实现,解除测试工具的束缚。 JDD好处不少,除了前期需要设计分析和实现上有难度意外还有哪些不足的地方呢?2023-07-20归属地:辽宁1
- 飞彼易驭心计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。 如果还不能解决,那就加两层,加四层,加七层。2023-02-07归属地:北京1
- ifelse学习打卡2024-02-24归属地:浙江
收起评论