1.1 脚本录制规范:
基本原则是录制脚本要分开、gui文件要合并、批调用回放验证、可移植回放验证。
1.1.1 录制脚本要分开:
脚本太大,不仅不利于以后的维护,并且会导致WinRunner的不可预测的错误产生(具体可以参考WinRunner 的Readme文档)。录制时,可以根据测试用例的流程,拆分为几个小流程,对每个小流程分别录制成不同的脚本。
1.1.2 gui文件要合并:
首先,要在系统参数中,设置gui的录制模式为“Global GUI Map File
录制过程中,WinRunner会自动产生gui文件,一个测试用例要确保生成一个公用gui文件。用一个gui文件主要是为了以后gui对象的维护,脚本回放时gui对象的查找。但是由于我们的测试用例是分开录制的,每个小流程录制时都会产生一个gui临时文件,因此录制完脚本后要把临时gui文件合并到该测试用例的公用gui文件中。但是也要注意,开始新的录制前,一定要先手工加载测试用例的公用gui文件。
如果划分的子流程超过20个,则按每20个子流程录制一个gui文件的方式。Gui文件太大,会影响WinRunner的回放效率。
1.1.3 批调用回放验证:
为了提高脚本的正确性,每录制完成一个子流程后,都要恢复数据库,其他初始环境进行回放,以近早发现脚本错误。
单个测试用例脚本录制完成后,要专门写一个主脚本,进行各子脚本的主次调用处理,然后恢复数据库和其他初始环境进行回放,以验证整个脚本是否可以正确回放。
1.1.4 可移植回放验证:
由于WinRunner 工具的限制,在本机回放成功后,如果把脚本移植到其他机器上,往往无法成功。这其中既有自己编写的脚本问题,又有WinRunner录制自动生成的脚本问题。
自己编写脚本问题:往往是编写的可移植性较差,如加载gui文件时用的是绝对地址,如gui_load(“c://aa//aa.gui”),这样的脚本换到其他机器必然出错。
WinRunner录制自动生成的脚本问题: WinRunner的录制脚本往往和机器的环境有关,如果换了其他机器环境,往往回放不成功,这就需要手工修改脚本。
因此,可移植性回放是非常必要的。
1.1.5 脚本中使用的ODBC数据源名称统一命名为WR。
1.1.6 录入中文数据时统一使用简体。
1.1.7 数据表列名称规定
录入数据驱动的脚本时,数据表列名称统一采用英文,使用PB数据窗口中列对象的名称。数据表列名称下的第一行用中文对英文列名称做注释,使用PB数据窗口中列对象的中文标签,这一行不作为有效的录入数据。与数据表相关的循环语句请修改脚本从数据表的第二行开始读取数据。典型的例子是将数据驱动脚本中For循环的第一个表达式改为table_Row = 2。
1.1.8 脚本成功回放判定规定
一个子测试录制完成后,一定要及时回放测试,直到测试报告显示测试结果为OK,且子测试明细报告中没有红色的出错提示。如果是回放主测试,回放成功的标准是:主测试的结果报告显示为OK,同时所有子测试的结果报告也为OK,且子测试明细报告中没有红色的出错提示。
1.1.9 WinRuner主脚本中关于设置系统日期时间设置的规定,以保证脚本所描述的业务过程按业务逻辑在时间上有序。
因为脚本回放与脚本录制时的系统日期时间不一致,会导致与系统时间关系密切的测试脚本回放时失败。
为了消除时间差导致的回放错误,要求每一个测试用例的主测试在第一个子测试前加上date_set_system_date(年,月,日,时,分,秒)函数,以修改本地机器的日期时间等于这个主测试在接力式验收回放成功执行后的日期时间.这样再次回放时系统的日期时间就和上一次成功回放时的日期时间一致。
1.2 测试脚本存放规范:
各子测试脚本必须放到同一目录下,即环境目录下的Script目录下。这样便于批调用时引用。
1.3 Gui文件的存放:
Gui 文件,必须和测试脚本放到同一目录下,即环境目录下的Script目录下。
1.4 WinRunner使用规范:
(1) 必须写上清楚的注释:编写测试脚本,要进行详细的标注,每测试一小段,就要写一段备注,以便于将来修改,格式可以参考如下:
功能描述:描述脚本的功能
前置条件:该脚本在满足什么条件下才可以被执行
步骤描述:描述脚本录制的动作
检查点描述:描述作了对什么的检查,检查条件。
录入人:录制人
录入时间:
备注:
(2) gui文件的加载保存:
每次开始测试用例的录制脚本前,如果该测试用例已经存在gui文件,一定要手工打开gui文件,再开始录制。如果不想手工打开,可以写段自动加载gui的脚本,每次录制前运行一下该脚本。录入脚本后,要注意保存GUI文件,如果测试用例已经存在gui文件,一定要把临时的gui文件合并到该用例的公用gui文件中,然后保存。
(3) 如果机器数据较慢,或者网络较慢、或者数据库运行较慢,需要把等待打开窗口的时间设长。或者在脚本中插入同步点来处理。
(4) WinRunner不支持Fomular One,目前不可以用wr测试Fomular One
使用WinRunner录制时不可以切换不同输入法录制,仅可以用一种输入法。
(5) WinRunner 对shift 键无法纪录,需要特殊处理 ,可以加入如下处理
obj_type "dw_1.fslipbugno","<kShift_L>-";(告诉WinRunner按下Shift键)
中间是选择行的脚本
obj_type ("dw_1.FBugNo","<kShift_L>+";(告诉WinRunner释放Shift键)
(6) 保证录制的脚本干净性:
在录制过程中,不可避免的要进行其他动作,如打开邮件、打开非录制程序等,这些动作也会被WinRunner录制下来,这些动作会严重影响测试脚本的回放(除非作这些动作前停止录制)。
因此,为了保证脚本的干净,在WinRunner的参数中进行如下设置:设置Recode 的“Selected Applications” 为要录制的程序。
(7) 录制脚本时,不允许同时打开两个运行程序(指进行wr测试的程序)
(8) 变量的声明:WinRunner有auto /public /static /extern 四个类型的变量作用域声明,其中public为默认的类型。由于public 是全局的,只要在一个脚本中声明了,在任何其他脚本都可以引用,这就带来一个问题,如果其他的脚本修改了这个public 变量的值,将会引发问题。因此变量声明时必须明确的加上类型(auto /public /static /extern),public 的一般不要使用,推荐使用static /auto 。
2. 异常处理规范:
在录制或者编写测试脚本时,必须进行异常的错误处理。以提高程序的错误检查能力。
2.1 函数异常检测:
对于一些常用函数,必须进行函数执行异常的处理。至少进行如下函数的异常检测:et_window、win_activate、menu_select_item、ddt_open。
发现异常后,要终止程序的执行,并发邮件通知相关人员。
2.2 返回值规范:
模块、函数的返回值约定如下,0 表示成功 ,其他失败。
对于一些函数的返回值,需要进行判断处理:
(1) 每一个call语句都应该检查它的返回值是否为0, 如果不为0则报错退出。
所有GUI检查点、数据库检查点都应做返回值检查。如果不为0则报错退出。