用户体验测试的自动化实现

发表于:2008-5-06 14:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈能技    来源:51Testing投稿

qq

                                              图2  获取焦点所在控件的句柄
        与GetFocus相对应的Windows API函数是SetFocus,用于把焦点设置到某个控件上。大部分的测试工具在实现焦点的检查和设置其实都是采用了上述过程的原理。例如在QTP中,则可以采用如下脚本来实现相同的功能:
Dialog("Login").Activate
' 如果默认焦点不在Agent Name输入框,则提示错误
If NOT Dialog("Login").WinEdit("Agent Name:").CheckProperty("focused","True" )Then
 Msgbox Dialog("Login").WinEdit("Agent Name:").GetROProperty("focused")
End If
        这里的CheckProperty函数和GetROProperty函数是基本上可以在每个测试对象中使用的函数,其中CheckProperty类似于检查点,用于检查测试对象的指定属性是否等于指定的值,对于控件焦点,则是focused属性,属性值为True表示焦点落在控件上,属性值为False则表示焦点没有在控件上。
        GetROProperty用于获取测试对象运行时的值。通过指定focused属性,可以获取到控件的焦点属性。
检查Tab顺序
        使用与检查焦点类似的方法,可以检查界面中控件之间的焦点跳转顺序是否正确,也就是我们通常所说的Tab顺序的检查。
        检查焦点的跳转顺序的目的是为了提高用户的工作效率,在输入密集型的用户界面中,用户通常大部分情况下是在录入数据,如果不能很好地支持键盘TAB键、快捷键,而是要用户每输入一个数据就要移动鼠标,再次定位,则会耗费很多时间,不能有效地提高用户的工作效率。
        检查焦点的跳转顺序需要注意遵循一定的原则,例如“从上到下”、“从左到右”的原则。并且界面控件的排列也需要遵循类似的原则,更重要的是,需要在设计时考虑用户的思维模式,按用户业务场景中工作流和惯用的数据记录先后循序方式来安排界面布局,以及设置控件的TAB顺序。
        那么如何自动化地实现TAB顺序的检查呢?在QTP中,可以沿用检查控件焦点的方法,通过判断控件的Focused属性来判断当前是否跳转到该控件上。例如下面的QTP脚本所示:
' 启动应用程序
SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.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跳转顺序是否正确的功能。

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号