Robot进行功能测试时,可以在录制好的脚本中添加验证点来判断脚本执行后程序是否达到了预期的结果。
验证点的思想是通过比较控件的基准值与回放脚本时的值来判断程序是否按照预期的设想在执行[基准值是指录制脚本时所选控件的某些属性,具体取哪些属性依赖于添加的验证点类型]。通常录制好验证点后,都会生成一个基线数据文件,此文件的值是录制脚本时控件的某些属性的值或者是控件的数据,可以手工修改。
创建验证点时,可以设置重新获取时间及超时时间。
重新获取时间:在回放脚本时如果验证点没有验证成功,Robot将会间隔一段时间去重新获取验证点信息,这个时间就是重新获取时间。
超时时间:在回放脚本时如果验证点没有验证成功,Robot会间隔一段时间去重新获取验证点信息,但是过了一定时间就会停止,接着执行下面的脚本。这个时间就是超时时间。
一般常用的验证点有以下几种类型:
一、 Alphanumeric
使用Alphanumeric验证点从单行或多行编辑框及其他Robot可以识别的对象中捕获并比较字母或数字的值。包括CheckBox,Generic,GroupBox,Label, PushButton,RadioButton,ToolBar,Window(只能处理Caption)。
使用此类验证点可以验证文本的改变,拼写错误,以及确保数值的准确。
增加此类验证点后,会生成一个基准数据文件,可以用Text Comparator打开基准文件进行编辑。(对于Numeric Equivalence和Numeric Range两类验证点不会生成基准文件,基准值直接生成在脚本的验证函数中,也可以修改)。
Alphanumeric细分为下面的类型:
1、Case-Sensitive:验证录制脚本时捕捉到的文字是否与回放脚本时捕捉到的文字匹配(大小写敏感)
2、Case-InSensitive:验证录制脚本时捕捉到的文字是否与回放脚本时捕捉到的文字匹配(大小写不敏感)
3、Find Sub String Case-Sensitive:录制脚本时捕捉到的文字是否是回放脚本时捕捉到文字的子串(大小写敏感)
4、Find Sub String Case-InSensitive:录制脚本时捕捉到的文字是否是回放脚本时捕捉到文字的子串(大小写不敏感)
5、Numeric Equivalence:验证录制脚本时捕捉到的值是否与回放脚本时捕捉到的值相等。
6、Numeric Range:验证录制脚本时捕捉到的值是否属于回放脚本时一个特定的范围。
7、Apply a User_Defined DLL test function:回放脚本时需要验证的值是经过用户自定义的函数运算出来的。在此将DLL名称与函数名称指定好,脚本回放时,Robot将捕捉到的值与函数运算的结果相比较。
8、Verify that selected field is blank:验证所选区域是否为空。如果所选区域不包含任何文字或数字,那么验证点将执行成功。对于ListBox,ComboBox,如果没有任何项被选中,Robot也认为所选区域是空的。
二、 Menu
使用此验证点捕获所选菜单的标题、菜单项、快捷键和状态(enable,disabled,grayed 或 checked)。Robot可以记录五级子菜单的信息。添加此类验证点时,可以根据需要选择部分菜单进行验证,也可以直接编辑菜单项的值来改变捕捉到的基准值。回放脚本时,Robot会检测所选菜单的内容、状态、快捷键是否与基准值一致,而对菜单项的位置不做检测。
三、 Object Data
使用ObjectData验证点对对象中的数据进行验证,这些对象包括:标准的Window控件、ActiveX控件、VB的Data控件、HTML及Java对象、PowerBuilder的DataWindow和DataStore控件、菜单。同Menu验证点一样,也可以只选择部分数据作为基准值进行测试。
四、 Object Properties
使用Object Properties验证点对标准Windows对象的属性进行验证(属性指控件的一些特征,比如编辑框的name、readonly、value等等)。也支持一些特殊的对象如ActiveX控件、VB的Data控件、HTML及Java对象、PowerBuilder的DataWindow。添加此类验证点后,Robot将显示出被捕获的对象及其相应属性的列表。你可以从对象的列表中选择你想要测试的属性。
五、 Window Existence
使用Windows Existence验证点来判断窗口是否存在以及验证窗口的状态。这些状态包括:正常、最小化、最大化或者是隐藏。此类验证点不生成基准数据文件。要修改基准数据必须重新录制脚本。最常用的是用来验证点击按钮后是否出现了预期的窗口。
六、Clipboard
对于用其他类型的VP不能捕获的对象文本,使用Clipboard类型。被测应用程序必须支持拷贝或剪切功能,这样才能将对象数据拷贝到Clipboard中进行比较。这种VP对于从电子表格和文字处理的应用程序捕获数据,是十分有效的。但它不能用于测试位图。
七、Menu
使用Menu VP可以捕获所选菜单的标题、菜单项、快捷键和状态(enable,disabled,grayed 或 checked)。Robot可以记录五级子菜单的信息。
八、Region Image
使用Region Image VP来选择屏幕的一个区域,Robot将其捕获并存成位图。该区域可以交迭多个窗体。要使该类VP通过验证,选择区域的位置和屏幕的分辨率在回放时应该与录制时保持一致。
九、Windows Image
使用Window Image VP来选择和捕获客户端窗体的一个区域。其菜单、标题栏和边框不在捕获的图象范围之内。Robot能够捕获整个窗体或是它的一部分,窗体可以与其他窗体或是部分屏幕重叠。在这种情况下,Robot捕获该窗体并将那些不可见的部分保存为黑色。被捕获的区域是一个象素图象,它包括颜色、高度和宽度。 要使该类VP通过验证,窗体的大小和屏幕的分辨率应该在回放时与录制时保持一致。
十、File Comparison
使用File Comparison VP在回放时来比较两个指定的文件。这种比较是基于文件的内容和大小,而不是文件的名称和日期。
在创建此类VP的时候,你需要指定驱动器、目录和文件名。在回放时,Robot按字节来比较该文件。
注意:File Comparison VP 的名称并不出现在Asset pane中。(File Comparison 验证点的文件比较原理同DOS下的FC命令相同,但是没有FC命令可扩展,即FC可以带参数,但File Comparison 验证点不能带参数,只是进行二进制比较;其中的例子就是:对两个相同的ACCESS文件进行比较,无论怎么执行File Comparison 验证点,比较结果都是不同的,但如果用FC命令结果是两文件相同,所以File Comparison 验证点没有DOS下的FC命令强大,所以它对DOC文件、TXT文件比较是没问题,一旦对MDB、XLS文件比较,File Comparison 验证点就不是我们想象的结果;)