注:本文最早发表在《51测试天地》第九期
检查字体设置
在进行用户体验测试时,还要关注界面的字体设置是否正确、统一。在QTP中,可以通过访问控件的Font属性来获取字体方面的信息,通过FontSize属性来获得字体的大小,如图12所示。
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 251.25pt; HEIGHT: 427.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>
图12 通过Object Spy查看控件的字体属性
可以采用下面的简单代码来实现对字体的检查:
' 检查控件的字体类型
vbWindow("Form1").VbEdit("Text1").CheckProperty "FontName","隶书"
' 检查控件的字体大小
vbWindow("Form1").VbEdit("Text1").CheckProperty "FontSize",12
当然,也可以封装成一个函数,如下所示:
' 检查字体属性
Public Function CheckFont(TestObject , FontName , FontSize)
If TestObject.CheckProperty("FontName",FontName,2) and TestObject.CheckProperty("FontSize",FontSize,2) Then
CheckFont = True
Else
CheckFont = False
End If
End Function
然后通过类似如下的脚本来调用:
' 检查输入框字体设置是否正确
CheckFont vbWindow("Form1").VbEdit("Text1"),"隶书",12
如果我们希望界面中所有TextBox类型的控件元素都采用统一的字体类型和字体大小,则可以按如下脚本实现:
'创建Description对象
Set MyDescription = Description.Create()
'匹配所有TextBox类型的对象
MyDescription("Class Name").Value = "VbEdit"
'获取所有符合条件的控件对象集合
Set MyChildObject = vbWindow("Form1").ChildObjects(MyDescription)
ChildObjectsCount = MyChildObject.Count
'遍历对象集合并执行检查
For Counter=0 to ChildObjectsCount-1
CheckFont MyChildObject(Counter),"隶书",12
Next
' 检查字体属性
Public Function CheckFont(TestObject , FontName , FontSize)
If TestObject.CheckProperty("FontName",FontName,2) and TestObject.CheckProperty("FontSize",FontSize,2) Then
CheckFont = True
Else
CheckFont = False
End If
End Function
脚本的运行结果如图13所示。
<shape id="_x0000_i1026" style="WIDTH: 414.75pt; HEIGHT: 356.25pt" type="#_x0000_t75"><imagedata o:title="" src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image003.png"><font size="3"></font></imagedata></shape>
图13 运行结果
在脚本中利用了测试对象的ChildObjects属性来获取某个窗口中的控件。用描述性编程的方式来指定需要检查的控件,例如指定某一类控件,或者是某个控件。当然也可以指定检查所有子控件,只需要把MyDescription("Class Name").Value = "VbEdit"这一句改成如下的脚本即可:
' 指定检查所有子控件
MyDescription("Class Name").Value = ".*"
采用类似的方法,还可以检查字体的粗斜体设置、字体颜色等属性是否满足界面设计规范的要求。