概念
自动化测试模型可以看作自动化测试框架与工具设计的思想。自动化测试不仅仅是单纯写脚本运行就可以了,还需要考虑从到如何使脚本运行效率提高,代码复用,参数化等问题。自动化测试模型分为四大类:线性模型,模块化驱动测试,数据驱动,关键字驱动。
线性模型
线性脚本中每个脚本都相互独立,且不会产生其他依赖与调用,其实就是简单模拟用户某个操作流程的脚本。
案例:自动登录QQ空间并且自动退出
模块化驱动测试
线性模型虽然每个用例都可以拿出来独立运行,但是用例之间重复代码很多,开发,维护成本高。其实把重复的操作代码封装为独立的公共模块,当用例执行时需要用到这部分,直接调用即可,这就是模块驱动测试。比如登录系统,退出登录,截图函数等。
案例:自动登录QQ空间并且自动退出。将登录和退出封装,在使用时再调用。
直接在同一文件下调用,可以直接如下书写:
如果需要在另一文件夹下调用,需要如下书写:
如果调用模块提示有问题,需要如下设置:
数据驱动测试
模块驱动的模型虽然解决了脚本的重复问题,但是需要测试不同的数据的用例时,模块驱动的方式就很不适合了。数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。装载数据的方式可以时列表,字典或是外部文件(txt,csv,xml,excel),目的就是实现数据和脚本的分离。
案例:自动登录QQ空间并且自动退出。将登录和退出封装,在使用时再调用。为用户名和密码设置参数,在调用的时候再传入用户名和密码。
实际调用如下:
关键字驱动测试
通过关键字的改变引起测试结果的改变叫关键字驱动测试。Selenium IDE也是一种传统的关键字驱动的自动化工具。Robot Framework是一个功能更强大的关键字驱动测试框架。