MSFlexGrid

MSFlexGrid 是微软的 ActiveX 表格控件,功能强大,在 VB 编程中经常使用。

 

QTP 录制下来的脚本通常如下所示:

VbWindow("Form1").Activate

VbWindow("Form1").AcxTable("MSFlexGrid").SelectRow 1

VbWindow("Form1").AcxTable("MSFlexGrid").Click 196,23

VbWindow("Form1").VbList("List1").Select "2 - com2"

VbWindow("Form1").AcxTable("MSFlexGrid").SelectRow 2

VbWindow("Form1").AcxTable("MSFlexGrid").Click 120,39

VbWindow("Form1").VbEdit("Text2").Set "100"

VbWindow("Form1").AcxTable("MSFlexGrid").SelectRow 4

VbWindow("Form1").AcxTable("MSFlexGrid").Click 145,69

VbWindow("Form1").VbEdit("Text2").Set "200"

VbWindow("Form1").AcxTable("MSFlexGrid").SelectRow 9

VbWindow("Form1").AcxTable("MSFlexGrid").Click 151,141

VbWindow("Form1").VbList("List1").Select "True"

VbWindow("Form1").VbButton(" 确定 ").Click

 

这样的脚本不仅冗长,而且与坐标值相关,因此难以维护,代码的重用性也不高。适当封装一下,则可以下面的更为优雅的方式来编写测试脚本:

VbWindow("Form1").AcxTable("MSFlexGrid").MSFlexGrid_SetValue "Settings",123

Msgbox VbWindow("Form1").AcxTable("MSFlexGrid").MSFlexGrid_GetValue("Settings")

 

只要适当研究一下 MSFlexGrid 控件的属性和方法,再加上 QTP RegisterUserFunc 函数的使用即可完成封装。实现代码如下:

Function MSFlexGrid_GetValue( obj, PropertyName )

       For i =1 to obj.RowCount    

              If obj.Object.TextMatrix(i,0) = PropertyName Then

                     PropertyValue = obj.GetCellData(i,1)

                     Exit For

              End If

       Next

       MSFlexGrid_GetValue = PropertyValue

End Function

RegisterUserFunc "AcxTable","MSFlexGrid_GetValue","MSFlexGrid_GetValue"

 

Function MSFlexGrid_SetValue( obj, PropertyName, PropertyValue )

       For i =1 to obj.RowCount    

              If obj.Object.TextMatrix(i,0) = PropertyName Then

                     PropertyValue = obj.SetCellData(i,1,PropertyValue)

                     Exit For

              End If

       Next

End Function

RegisterUserFunc "AcxTable","MSFlexGrid_SetValue","MSFlexGrid_SetValue"

 

 

自动化测试项目中的两大类难题是:

1 、测试脚本开发的管理问题

2 、测试脚本开发的技术问题

第一类难题主要通过采用各种脚本框架来解决,例如模块结构化框架、数据驱动框架、关键字驱动框架等。而第二类难题则主要靠自动化测试工程师通过开发 QtestWare 这样的测试对象级的框架来解决。

 

 

你可能感兴趣的:(框架,function,list,测试,脚本,vb)