注:本文最早发表在《51测试天地》第九期
检查Tab顺序
使用与检查焦点类似的方法,可以检查界面中控件之间的焦点跳转顺序是否正确,也就是我们通常所说的Tab顺序的检查。
检查焦点的跳转顺序的目的是为了提高用户的工作效率,在输入密集型的用户界面中,用户通常大部分情况下是在录入数据,如果不能很好地支持键盘TAB键、快捷键,而是要用户每输入一个数据就要移动鼠标,再次定位,则会耗费很多时间,不能有效地提高用户的工作效率。
检查焦点的跳转顺序需要注意遵循一定的原则,例如“从上到下”、“从左到右”的原则。并且界面控件的排列也需要遵循类似的原则,更重要的是,需要在设计时考虑用户的思维模式,按用户业务场景中工作流和惯用的数据记录先后循序方式来安排界面布局,以及设置控件的TAB顺序。
那么如何自动化地实现TAB顺序的检查呢?在QTP中,可以沿用检查控件焦点的方法,通过判断控件的Focused属性来判断当前是否跳转到该控件上。例如下面的QTP脚本所示:
' 启动应用程序
SystemUtil.Run "C:/Program Files/Mercury Interactive/QuickTest Professional/samples/flight/app/flight 4a .exe"
' 定位到程序窗口,并判断窗口中的默认焦点是否在正确的位置
Dialog("Login").Activate
Dialog("Login").WinEdit("Agent Name:").CheckProperty "focused","True"
' 在控件上单击Tab键,检查焦点是否跳转到正确的位置
Dialog("Login").WinEdit("Agent Name:").Type micTab
Dialog("Login").WinEdit("Password:").CheckProperty "focused","True"
Dialog("Login").WinEdit("Password:").Type micTab
Dialog("Login").WinButton("OK").CheckProperty "focused","True"
Dialog("Login").WinButton("OK").Type micTab
Dialog("Login").WinButton("Cancel").CheckProperty "focused","True"
Dialog("Login").WinButton("Cancel").Type micTab
Dialog("Login").WinButton("Help").CheckProperty "focused","True"
该脚本实现了检查如图3所示的Flight程序登录界面的TAB跳转顺序是否正确的功能。
图3 Flight程序登录界面
仍然使用CheckProperty来检查focused属性,然后判断属性值是否为True,如果为True,则表示当前焦点已经正确地跳转到该控件上,检查完后要执行一次TAB操作,方法是通过使用测试对象的Type方法,输入参数为micTab,micTab是QTP内置的常量值,表示按下TAB键。