在往期我们讲了很多实现自动化过程中的一些面试题,那么实现自动化之后,问题又来了。你肯定要考虑分层了面试官:自动化测试分层思想,你是如何理解的?我看到过很多招聘需求上直接写了这一点,会自动化测试分层思想优先。啥意思?但凡能称得上优先的,就是加分项呐。所以,为什么要有这个自动化分层?自动化分层到底怎么做?那你就得给面试官说清楚了那你可以这样说:当我们的脚本能够实现自动化,能够让我们自动去点点点了,接下来我们要考虑这个脚本的稳定性,因为你可能说一个背景,自动化用例越来越多,数据也越来越多。为了提高提高脚本的维护性,稳定性,可读性、复用性,等等,我们就要把自动化脚本分层。那何为分层?分层到底是啥?那就好像一个蛋糕一样,一层两层三层……第一层和第二层有什么区别?第一层比第二层应该是少点吧,越到下面,蛋糕应该越大,这个好理解吧?其实脚本分层的原理就是让不同的层去做不同类型的事情,专业的人做专业的事,让我们的代码结构更清晰,还有很多代码可以复用,很多东西都是重复使用的,所以我们会把代码分层。那么分层可以分为哪些层呢?对象库层,业务层、逻辑层,数据层当然有些东西可以放在一起,根据这几个层,你可以把它封装三到四次,这里就又讲到一个封装。把这些层次我们进行封装两到三次。对象库层首先你想到一个对象,什么是对象?你做ui自动化,什么是对象?一个网站上的各种按钮,输入框,各类元素是不是对象?把一个系统所有的元素封装起来,到一个层次。像我们的框架里面,有一个POM就是专门用来做,管理很多页面里的一些元素,那当然包括了这些元素的操作方法。而且可以封装一些常用的业务。那什么叫业务?登录就是一个业务,下单就是一个业务,就好像做功能测试,一个功能就是一个业务。比如说下单搜索就是一个业务,而业务又分为逻辑,所以这个东西很细。为什么业务又分为逻辑?因为根据不同的东西,它的这个走向不一样,比如说出现了搜索结果,我去点击,那如果没有出现,又怎么怎么样,所以这里面还包含了很多逻辑。然后这些业务里面,那当然还有很多的公共方法,所以逻辑层里面可能还包括逻辑处理层,肯定也会调用很多的公共方法,所以调用很多的关键字。那数据层就非常好理解了,那我把所有的数据都抽出来,那比如说像我们做接口测试。我把所有的一些接口必填的参数,我把它封装起来。我在这个框架里面打开了一个excel表,这就是我们一个接口项目的数据,我把数据都抽出来,放到一个excel表格里面,是不是跟这个代码没有任何关系了。这些接口的数据,大家来看,入参、断言、那当然我这里只写了两个,很多数据我都抽出来,抽到哪里?很多方式去抽取(excel、yaml……)总结一下背景:自动化用例越来越多,数据也越来越多,目的:脚本的维护性,稳定性,可读性,复用性分层?分层:对象库层,业务层、逻辑处理层,数据层
转载请注明:http://www.0431gb208.com/sjsbszl/6580.html