51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2996|回复: 0
打印 上一主题 下一主题

[原创] 面试官:自动化测试分层思想,你是如何理解的?

[复制链接]
  • TA的每日心情

    2021-6-10 16:09
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2021-7-5 14:16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    在往期我们讲了很多实现自动化过程中的一些面试题,那么实现自动化之后,问题又来了。你肯定要考虑分层了

    面试官:自动化测试分层思想,你是如何理解的? 我看到过很多招聘需求上直接写了这一点,会自动化测试分层思想优先。啥意思?但凡能称得上优先的,就是加分项呐。

    所以,为什么要有这个自动化分层?自动化分层到底怎么做?

    那你就得给面试官说清楚了

    那你可以这样说:当我们的脚本能够实现自动化,能够让我们自动去点点点了,接下来我们要考虑这个脚本的稳定性,因为你可能说一个背景,自动化用例越来越多,数据也越来越多。为了提高提高脚本的维护性,稳定性,可读性、复用性,等等,我们就要把自动化脚本分层。

    那何为分层?分层到底是啥?

    那就好像一个蛋糕一样,一层两层三层……

    第一层和第二层有什么区别?

    第一层比第二层应该是少点吧,越到下面,蛋糕应该越大,这个好理解吧?

    其实脚本分层的原理就是让不同的层去做不同类型的事情,专业的人做专业的事,让我们的代码结构更清晰,还有很多代码可以复用,很多东西都是重复使用的,所以我们会把代码分层。

    那么分层可以分为哪些层呢?

    对象库层,业务层、逻辑层,数据层

    当然有些东西可以放在一起,根据这几个层,你可以把它封装三到四次,这里就又讲到一个封装。

    把这些层次我们进行封装两到三次。

    对象库层

    首先你想到一个对象,什么是对象?你做ui自动化,什么是对象?一个网站上的各种按钮,输入框,各类元素是不是对象?

    把一个系统所有的元素封装起来,到一个层次。



    像我们的框架里面,有一个POM就是专门用来做,管理很多页面里的一些元素,那当然包括了这些元素的操作方法。而且可以封装一些常用的业务。

    那什么叫业务?登录就是一个业务,下单就是一个业务,就好像做功能测试,一个功能就是一个业务。

    比如说下单搜索就是一个业务,而业务又分为逻辑,所以这个东西很细。

    为什么业务又分为逻辑?因为根据不同的东西,它的这个走向不一样,比如说出现了搜索结果,我去点击,那如果没有出现,又怎么怎么样,所以这里面还包含了很多逻辑。

    然后这些业务里面,那当然还有很多的公共方法,所以逻辑层里面可能还包括逻辑处理层,肯定也会调用很多的公共方法,所以调用很多的关键字。

    那数据层就非常好理解了,那我把所有的数据都抽出来,那比如说像我们做接口测试。我把所有的一些接口必填的参数,我把它封装起来。



    我在这个框架里面打开了一个excel表,这就是我们一个接口项目的数据,我把数据都抽出来,放到一个excel表格里面,是不是跟这个代码没有任何关系了。



    这些接口的数据,大家来看,入参、断言、那当然我这里只写了两个,很多数据我都抽出来,抽到哪里?很多方式去抽取(excel、yaml……)

    总结一下

    背景:自动化用例越来越多,数据也越来越多,

    目的:脚本的维护性,稳定性,可读性,复用性分层?

    分层:对象库层,业务层、逻辑处理层,数据层






    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-26 18:25 , Processed in 0.062700 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表