web自动化测试-自动化测试模型介绍
一、线性测试
什么是线性测试?
通过录制或编写对应用程序的操作步骤产生相应的线性脚本,每个测试脚本相对独立,不产生依赖和调用,单纯的来模拟用户完整的操作场景
缺点
1、开发成本高,测试用例之间存在重复的操作,不得不为每一个用例去录制或编写这些重复的操作,如每个用例的登录和退出操作
2、维护成本高,测试用例之间存在重复操作,当这些重复操作发生改变时都得去修改,如登录输入框定位发生变化,那么每个包含登录用例就得全部修改
二、模块化驱动测试
什么是模块化驱动测试
由于线性测试的缺陷非常明显,所以借鉴编程语言中模块化的思想,把重复的操作独立成一个公共模块,当用例执行过程中需要用到这一模块操作时则被调用,这样最大限度的消除了重复,提高测试用例的可维护性
优点
1、提高开发效率,不用重复编写相同的操作脚本,如已经写好一个登录模块,后续有登录的地方直接调用即可
2、简化了维护的复杂性,如登录输入框定位发生变化,只需要修改登录模块即可,对于所有调用登录的模块不需要做任何修改
缺点
当重复操作有多个不同数据时还是要重复写脚本,如首次登录是用 张三用户名,下次登录用李四的用户名,那么就得重复去写登录脚本
三、数据驱动测试
什么是数据驱动测试
为了解决模块化驱动测试的缺陷而设计,也就是数据的参数化,因输入数据的不同而引起输出的结果的不同
优点
实现数据与脚本分离,增强脚本的复用性
四、关键字驱动测试
什么是关键字驱动测试
理解了数据驱动后,无非是把数据换成关键字,通过关键字的改变引起测试结果的改变,如robotframework框架
优点
把底层代码封装后取一个名字,这个名字就成了关键字,不需要懂代码,只要知道关键字使用即可
缺点
学习成本高,后期难维护,可靠性也会变差,局限在自己的框架内