自动化测试如何分层

前言

       在测试自动化中,测试代码中不仅仅包含测试逻辑,还包含许多其他代码,比如 URL 拼接、html/xml 解析、访问 UI 控件,等等。若把测试逻辑与这些无关代码混在一起,测试逻辑将会很难理解, 也不容易维护。小编于本文介绍如何用分层结构来解决测试自动化中遇到的这些问题。

为什么要写框架?

从个人方面来说:

  • 逼格高,让别人感觉你好厉害,技术强

  • 面试是加分项,会写框架,可以作为谈资硬性指标

从实际方面来说:

  • 好的测试框架,可以稳定性,健壮性强,可降低代码维护成本

  • 方便定位问题,失败定位问题会比较方便

  • 可以提升测试效率,编写脚本成本,拿来就用,直接点方法就行

自动化技术

       软件自动化测试技术主要有:录制/回放、线性脚本、结构化脚本、数据驱动、关键字驱动。

  • 线性脚本:最早的脚本方式,直接一行一行进行实现顺序的代码执行;该阶段只是适用于初学者的理解selenium相关的api操作;该类型的脚本没有任何意义。

  • 结构化脚本:主要是通过selenium+api+python面向对象(类与对象)进行封装后的脚本;该类型脚本主要包括两种类型:模块化脚本、库/包脚本;不同的业务场景会涉及在不同的模块中;

  • 数据驱动脚本:实现脚本中的数据与代码进行分离操作;此步主要考虑的是业务场景上的数据(应该将数据提取到专门存储数据的格式文件中、数据参数化操作)

  • 关键字驱动脚本:将每步业务操作封装到每个关键字(例如:登陆操作---->input:username input:password button:submit----->Selenium IDE RF);将每个业务流操作封装成关键字对象;

 

如何分层封装

  • 分层会根据不同的设计者、公司定义规则、参考主流分层的架构模式等等所得到的封层模型会略有不同;但是整体的核心分层思想是不会变;

  • 一般定义分层层次为4-6层较为合适;可以根据自身的思想进行封装设计;

    • a.页面元素处理层:(PO模式:Page Object表示IDE是页面对象管理;表示的是意思:将每个页面上的所有元素定义在一个模块中)----->对后期前端页面进行修改,后期脚本进行维护十分方便(定位明确)

    • b.业务流操作层:表示的是基于页面元素处理层实现业务流的自由组织;(实际对应自动化的业务流场景的测试用例执行)

    • c.测试用例层:根据业务流场景进行设计相应的测试用例并执行;用例的执行都是通过框架完成(单元测试框架:unittest、pytest),并且可以很好的自由组织测试用例最好执行产生结果并分析

    • d.数据分离层:将脚本中的所有数据全部提取出来进行专门的数据模块管理,后期可直接修改相应数据即可;不需要进行底层的代码查看分析;

    • e.公共层:常量数据的存储、报告的生成、日志的保存、邮件的发送等

    • f.主程序入口应用层:执行只需要设定一个入口,最后整体框架只需要执行主程序入口模块,只需要修改数据分离层中的数据,只需要新增测试用例层的用例即可;其它层底层进行封装;

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值