今天我们将围绕自动化测试工具这一主题,主要展开聊一聊自动化测试工具的工作原理。目前市面上的主流自动化测试工具主要基于以下三种原理。

第一种:基于代码层面的功能自动化测试工具。

基于代码层面的功能自动化测试工具主要是一些单元测试工具,例如:JUnit、NUnit、MSTest等,这些工具直接访问被测试的应用程序的代码,对其中的类和函数进行调用,输入各种测试数据,检查函数的返回值和期待的值是否一致来判断是否通过,一般会涉及到数据库层的校验。

 

自动化测试工具

 

第二种是基于浏览器和DOM对象模型的功能自动化测试工具

自动化的功能测试工具是基于浏览器和DOM对象模型开发的,例如:AutoRunner、AutoRunner365、Selenium、Watir等,这些测试工具直接访问Web浏览器,利用脚本语言操纵浏览器和Web页面包含的DOM对象,从而达到模拟用户控制浏览器导航、页面元素的操纵等效果,并且直接获取DOM对象的属性,从而获得Web页面元素的各种属性,通过这些属性可判断测试步骤的结构是否正确。一般是通过对被测系统的界面进行操作,工具自动记录脚本或者通过增加对象的方式获取对象,通过对于视图对象的拖拽直接生成脚本;

第三种就是基于GUI对象识别的测试工具原理

目前大部分商业自动化测试工具是基于GUI对象识别技术来设定的,基于GUI层面测试需要与各种界面元素打交道,并且不同的编程语言和开发工具的应用程序在页面的表现、事件的响应上都略有不同,因此,设计基于GUI层面的自动化功能测试工具会更为复杂些。