介绍
本文对自动化测试中的四种基础模型:线性模型、模块化驱动测试、数据驱动测试、关键字驱动测试进行了详细介绍,分析了各个模型的优势和劣势。让读者清晰的了解这四种模型的演化过程。
线性模型
通过录制或者编写应用程序的操作步骤产生相应的线性脚本,每个测试脚本相对独立,且不产生其他依赖与调用,这是自动化测试初期的表现形式。
优势
每一个脚本都是完整且独立的。所以,任何一个测试用例脚本拿出来都可以单独执行。
劣势
测试用例的开发与维护成本很高。
开发成本高:测试用例之间可能会存在重复的操作,需要为每个用例去录制或编写重复的操作。
维护成本高:测试用例之间存在重复的操作,所以当这些重复的操作发生改变时,就需要逐一进行修改。
模块化驱动测试
正是由于线性测试的缺陷非常明显,因此早期的自动化测试专家就考虑的测试模型来代替线性测试。做法也很简单,借鉴了编程语言中模块化的思想,把重复操作独立成公共模块,当用例执行过程中需要用到这一模块操作时则被调用进而消除了重复,从而提高测试用例的可维护性。
优势
提高了开发效率,不用重复编写相同的操作脚本。比如,已经写好一个登陆模块,那么后续测试用例在需要登录的地方调用即可。
简化了维护的复杂性,如果登录按钮的定位发生了变化,那么只要修改登陆模块中的脚本即可,对于所有调用登录模块的其他测试脚本来说不需要进行任何修改。
劣势
测试数据发生变化时,需要重新编写模块脚本。例如,现在我要测试不同用户的登录,首先用的是”Kevin”的用户名登录;下一个测试用例要换成“Mike”的用户名登录。在这种情况下,还是需 重复地编写登录脚本。
数据驱动测试
关键字驱动就是为了解决,在模块化驱动测试过程中,当数据发生变化时,需要重新编写模块脚本这一问题而孕育而生的。对于数据驱动所需要的测试数据,通过数据池进行管理。数据驱动就是数据的参数化,因为测试数据的不同而引起输出结果的不同。
通常使用外部文件(excel、csv、ini)或者数据库来实现数据驱动,本质就是实现测试数据与脚本的分离。
在excel中写入测试测试user和password
在代码中获取user和password变量的值,这样当变量的赋值在excel文档中发生变化时就不会影响代码了,进而实现测试数据与脚本的分离。
关键字驱动测试
关键字驱动就是把“数据”换成了“关键字”,通过关键字的改变引起测试的改变。常用的工具Selenium
IDE和Robot Framework
上图是Selenium IDE录制脚本页面,从页面中可以看出每一个动作分成了三个部分
做什么?(Command)例如输入、点击等动作
对谁做?(Target)对页面中的哪个元素进行输入、点击等动作
如何做?(Value)例如在输入框id=kw中,输入selenium3