在往期我们讲了很多实现自动化过程中的一些面试题,那么实现自动化之后,问题又来了。
你肯定要考虑分层了
面试官:自动化测试分层思想,你是如何理解的?
我看到过很多招聘需求上直接写了这一点,会自动化测试分层思想优先。啥意思?但凡能称得上优先的,就是加分项呐。
所以,为什么要有这个自动化分层?自动化分层到底怎么做?
那你就得给面试官说清楚了
那你可以这样说:当我们的脚本能够实现自动化,能够让我们自动去点点点了,接下来我们要考虑这个脚本的稳定性,因为你可能说一个背景,自动化用例越来越多,数据也越来越多。为了提高提高脚本的维护性,稳定性,可读性、复用性,等等,我们就要把自动化脚本分层。
那何为分层?分层到底是啥?
那就好像一个蛋糕一样,一层两层三层……
第一层和第二层有什么区别?
第一层比第二层应该是少点吧,越到下面,蛋糕应该越大,这个好理解吧?
其实脚本分层的原理就是让不同的层去做不同类型的事情,专业的人做专业的事,让我们的代码结构更清晰,还有很多代码可以复用,很多东西都是重复使用的,所以我们会把代码分层。
那么分层可以分为哪些层呢?
对象库层,业务层、逻辑层,数据层
当然有些东西可以放在一起,根据这几个层,你可以把它封装三到四次,这里就又讲到一个封装。
把这些层次我们进行封装两到三次。
对象库层
首先你想到一个对象,什么是对象?你做ui自动化,什么是对象?一个网站上的各种按钮,输入框,各类元素是不是对象?
把一个系统所有的元素封装起来,到一个层次。
像我们的框架里面,有一个POM就是专门用来做,管理很多页面里的一些元素,那当然包括了这些元素的操作方法。而且可以封装一些常用的业务。
那什么叫业务?登录就是一个业务,下单就是一个业务,就好像做功能测试,一个功能就是一个业务。
比如说下单搜索就是一个业务,而业务又分为逻辑,所以这个东西很细。
为什么业务又分为逻辑?因为根据不同的东西,它的这个走向不一样,比如说出现了搜索结果,我去点击,那如果没有出现,又怎么怎么样,所以这里面还包含了很多逻辑。
然后这些业务里面,那当然还有很多的公共方法,所以逻辑层里面可能还包括逻辑处理层,肯定也会调用很多的公共方法,所以调用很多的关键字。
那数据层就非常好理解了,那我把所有的数据都抽出来,那比如说像我们做接口测试。我把所有的一些接口必填的参数,我把它封装起来。
我在这个框架里面打开了一个excel表,这就是我们一个接口项目的数据,我把数据都抽出来,放到一个excel表格里面,是不是跟这个代码没有任何关系了。
这些接口的数据,大家来看,入参、断言、那当然我这里只写了两个,很多数据我都抽出来,抽到哪里?很多方式去抽取(excel、yaml……)
总结一下
背景:自动化用例越来越多,数据也越来越多,
目的:脚本的维护性,稳定性,可读性,复用性分层?
分层:对象库层,业务层、逻辑处理层,数据层
关注一凡这个博主是—————————————————↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
最后:
1、点赞,收藏。防止以后找不到,想看的时候,在自己主页就能找到了,很方便;
2、关注我。让我们成为长期关系,下一个内容会分享更多的硬核干货;
3、文章学习资源,均可以免费分享。
公号:程序员一凡。这样的好内容,里面还有近百篇。 谢谢你的支持!
目前测试平台项目研发已经完成并且在Github开源,有兴趣的朋友可以去Github下载
https://github.com/ooqitech/ATP
不要只做收藏从未停止,行动从未开始的人,很多事情,做着做着就无师自通了。如果在做的过程中还能稍微加点思考,稍微看一些别人的经验和做法,成长会更快,效果也会更好!加油吧,测试人!路就在脚下,成功就在明天!
我是一凡,用心输出有价值的内容,你若盛开,清风自来!
创作不易,不想被白嫖,各位的「点赞」就是一凡创作的最大动力,我们下篇文章见!
网友评论