QTP全称Mercury QuickTest Professional,是一款自动化测试工具,用于软件的功能测试和回归测试。它能够录制用户行为,并自动进行重放、捕获及验证,可以代替测试人员去完成那些重复性高并且枯燥的工作。
录制用户行为,也就是录制测试脚本,所有录制的用户行为都能够追踪到脚本代码。脚本的重用作为测试自动化的一个方面,是指将一些通用的、固定的用户行为从测试脚本中提取出来,作为独立部分,在其它脚本中加以引用。这样,就避免了一些通用行为的重复录制,有利于测试框架的搭建。
本文将简单介绍Mercury QuickTest Professional 8.2中脚本的重用方法。
2、QTP中的Action
QTP中脚本可重用的最小单元是Action,录制的用户行为集合将以脚本代码的形式存放在Action中。当你录制脚本的时候,只有一个Action,录制的脚本也全部在这个Action中,可以将这个Action进行切割,提取通用脚本并模块化。
QTP提供四种操作Action的方式:
√ New Action:新建一个Action,可以在其中录制、编辑脚本;
√ Split Action:将一个Aciton分割成两个Action;
√ Copy of Action:复制一个Action,即创建一个副本。两个Action相互独立,修改其中任何一个,不会影响另一个;
√ Call to Action:如同编程语言中的函数调用,测试脚本中也可以引用或调用一个可重用的Aciton,这个Action可以是任一测试脚本文件中声明为Reusable(可重用)的Action。注意:不允许在引用端修改被调用的Action,只能在原脚本文件中修改。
3、脚本重用示例
Call to Action是QTP重用脚本的核心,下面简单介绍一个使用这种方式来重用脚本的例子。
测试一个简单的B/S结构的办公自动化系统的常用功能。大体流程为:登录系统―业务处理―退出系统。其中登录系统和退出系统属于可重用性比较强的功能模块,如果系统允许同一用户同时在多台计算机上登录的话,可以单独建立一个脚本文件,将登录和退出录制成两个可重用的Action,以便重用。业务处理流程就比较多样了,它包括文稿审批、个人日志管理、请假申请等功能模块。测试一个功能模块的完整用户行为包括登录系统,执行特定的业务流程,执行完毕后退出系统。可使用一个测试脚本文件测试一个特定的功能模块,系统登录和退出模块可以使用Call to Action方式进行重用,不需要在每个模块的测试中都进行录制。具体步骤如下:
步骤1:录制系统登录和退出脚本。新建login_out脚本文件,在Record and Run Setting选项卡中,选择IE方式并输入办公自动化系统的网址,点击OK进行录制。QTP将自动打开办公自动化系统的网页,输入用户名和密码登录系统,再退出系统。然后结束录制,QTP将自动生成脚本。
步骤2:使用Split Action方式将login_out脚本中的Action分割成login和logout两个Action。login是系统登录部分的脚本,logout是退出部分的脚本。具体的分割步骤本文不作说明,读者可参阅QTP的使用手册。
步骤3:将login和logout设定为可重用。打开两个Action的Action Properties对话框,点选Reusable action选项,点击OK后,两个Action便可以被其它脚本文件引用了。
步骤4:录制业务处理脚本。按照步骤1新建process脚本文件进行任一功能模块的测试脚本录制。在登录系统进入主界面后,按下工具列中的Record按钮,开始录制相关的业务操作,完成后再按下Stop按钮结束录制,并将Action命名为processing。这样,process文件包含一个Action名为processing,其中录制了一段系统业务处理流程的测试脚本,但并未包含用户的登录和退出行为,不能直接自动执行,需要手工登录系统进入主界面后,才能执行。
步骤5:调用login和logout,完善process脚本。打开process脚本,在菜单中选择Insert―Call to Existing Action选项,打开Select Action对话框,选择login_out脚本,选择login,点击OK进行Action的引用。用同样的方法应用logout。注意,调整三个Action的顺序为login―processing―logout。
完成以上五个步骤后,可以执行process脚本进行调试。
4、小结
脚本重用作为测试自动化的一个方面,缩短了脚本的编制时间、利于脚本的架构与维护。在脚本文件中直接调用可重用的脚本,避免了重复录制,节省时间。自动化测试人员可以把一个Action中的用户行为分割成很多Action,从中提取出重用性高的设置为Reusable action保存在单独的文件中,并利用这些Reusable action来灵活地架构自己的测试脚本。当一个可重用的脚本需要修改时,仅需在它的源文件中进行改动,调用它的脚本都会随之改动,方便了脚本的维护。