检查点
一 检查点分四类:gui检查点、bitmap 检查点、database检查点、text 检查点。
目前为止常用到的是前两种,先把学到的东西总结总结。
1. gui checkpoint:
1.1 for single property:检查单个对象的单个属性。
操作:选择此功能后,点击所要检查的对象,然后会弹出一个框,可以对属性值和要检查的属性进行编辑,之后 点paste, WR会自动把检查点语句添加到脚本中。函数语句诸如:button_check_info ();edit_check_info();list_check_info();obj_check_info();scrall_check_info();static_check_info();win_check_info().
1.2 for object/window :检查单个对象的一个或多个属性。
操作:选择此功能后,点击所要检查的对象,之后会弹出对话框,列出对象的所有属性及属性值,可以进行编辑。点确定后,WR会自动把检查点语句添加到脚本中。函数语句诸如:***_check_gui();同时在脚本目录下的checklist文件夹与exp文件夹分别存放检查点的相应文件list1.ckl和gui1.ckl,gui2.ckl...等。这两个文件都可用记事本打开查看或编辑。在检查点预期值要更新时,两个文件内容要同步更新。
1.3 for object/window:检查一个窗体的所有对象。
操作:选择此功能后,双击所要检查的对象的标题栏或菜单栏,就可以把窗体中所的对象都学习上,生成一个list.ckl文件,WR会自动添加检查点语句到脚本中,win_check_gui();同样在脚本目录下的checklist文件夹与exp文件夹分别存放list1.ckl和gui1.ckl,gui2.ckl...,如果是多个对象的检查点会在脚本中添加语句如下:win_check_gui("Flight Reservation","allgui.ckl","gui1",1);win_check_gui("Flight Reservation","allgui.ckl","gui2",1);
1.4 for multiple objects:检查一个窗体的多个对象
操作:选择此功能后,点击所要检查的对象,完成对某一对象的属性学习之后,会提示可以继续对其它对象进行学习,便继续操作。学习完后,保存,之后WR会自动添加语句到脚本中,win_check_gui();同样在脚本目录下的checklist文件夹与exp文件夹分别存放list1.ckl和gui1.ckl,gui2.ckl...,如果是多个对象的检查点会在脚本中添加语句如下:win_check_gui("Flight Reservation","allgui.ckl","gui1",1);win_check_gui("Flight Reservation","allgui.ckl","gui2",1);
2. bitmap checkpoint:
2.1 for object/window: 检查单个对象或窗体
操作:选择此功能后,点击所要检查的对象,然后WR会自动添加语句到脚本,对象与窗体的检查语句分别为obj_check_bitmap("FLIGHT", "Img2", 1); 和 win_check_bitmap("chklist", "Img4", 1); 。Img1、Img2都存放在exp文件夹下。
2.2 for screen area :检查区域位图
操作:选择此功能后,选重要检查的区域范围,然后WR会自动添加语句到脚本,窗体上的区域与对象上的区域检查语句分别是:win_check_bitmap("Flight Reservation", "Img6", 1, 164, 222, 244, 77);
obj_check_bitmap("FLIGHT", "Img7", 1, 7, 31, 57, 21);同样预期图片存入在exp文件夹下。
二 update 模式
1. update模式用来更新gui检查点或bitmap检查点得到一个新预期值。
gui checkpoint 涉及到单个对象多个属性或多个对象的多个属性时,也就是得到的语句如"**_check_gui()",运行update模式会同时更新两个关联文件chklist和exp中的内容。
bitmap checkpoint 使用update模式更新exp下的Img*图片,从而更新预期值。
2. 假设是这种情况:主脚本main,调用另子脚本test1,其中test1中设有GUI或BITMAP检查点。在运行主脚本main过程中会提示找不到预期的文件(或是Gui或是Img),解决方之一就是先用update模式运行,这样可以把test1下检查点的相关文件更新到主脚本main下。
顺便提一下,遇到上述情况的解决办法之二:在General options->run->run in batch mode勾选,批调用模式,每次运行脚本时涉及到检查点时会到原脚本下去找不会在主脚本中找。