51Testing软件测试论坛

标题: 紧急求助,关于ACTION内部定义的类的引用问题 [打印本页]

作者: mythxhg    时间: 2009-4-3 09:39
标题: 紧急求助,关于ACTION内部定义的类的引用问题
如题:
    我在ACTION 1 中定义了CLASS MiniP
    我在其他ACTION内如何调用这个类?
作者: mythxhg    时间: 2009-4-3 10:57
结贴,找了半天,终于找到方法了
VBS文件:
'=============================CLASS INTERFACE==========================
Function MiniPInitialize()
        Set MiniPInitialize = new  MiniP
End Function
'==============================CLASS MINIP==========================
Class MiniP
   Public KeyBord
   Public Mouse
   Public bRespMode
   Private Sub Class_Initialize   ' Setup Initialize event.
                   Set KeyBord = CreateObject("Wscript.Shell")
                   Set Mouse = CreateObject("GTestCom.Mouse")
                bRespMode = true
   End Sub
   
   Private Sub Class_Terminate   ' Setup Terminate event.
                   Set KeyBord = Nothing
                   Set Mouse = Nothing
   End Sub

   Public Function OpenApp(ByVal szAppPaths,ByVal szWorkDir)
        InvokeApplication szAppPaths,szWorkDir
   End Function

   Public Function ClossApp()
                 If Window("MiniP").Exist Then
                        Window("MiniP").Maximize
                        Window("MiniP").Close
                 End If
   End Function

   Public Function OpenProject(ByVal szProject)
                Window("MiniP").Maximize
                Window("MiniP").WinMenu("Menu").Select "工程(F);打开(O)        Ctrl+O"
                Window("MiniP").Dialog("打开").WinEdit("文件名(N):").Type szProject
                Window("MiniP").Dialog("打开").WinButton("打开(O)").Click
                Window("MiniP").Window("ATM Log").Maximize
   End Function

   Public Function MaxSize()
            Window("MiniP").Maximize
   End Functi
   Public Function MiniSize()
            Window("MiniP").Minimize
   End Function

   Public Function CloseProject()
                Window("MiniP").Maximize
                Window("MiniP").WinMenu("Menu").Select "工程(F);关闭(C)        Ctrl+C"
   End Function

   Public Function OnClassify(ByVal index)
                Dim hwnd
                hwnd = Window("MiniP").GetROProperty("hwnd")
                Mouse.PostMsg hwnd,&H0401,5,index
   End Function
End Class
tsr对象文件:
      上面需要用到的对象都用QTP抓取到后EXPORT出来.

其他QTP脚本调用上面类的方法如下:
      导入资源vbs,导入TSR对象文件.
      然后脚本里添加如下代码:
      Dim MyObj
      Set MyObj = MiniPInitialize()
      之后你就可以随意使用这个类了.

类封装比函数封装多出很多优势的.
   函数封装里的每个函数要求独立性比较强,函数间数据只能通过参数进行联系.
   而类封装只要类没有被释放,那么你里面定义的公共属性,成员等都可以持续使用和关联.免去需要在另一个脚本上编写和定义变量来传递和控制.
作者: david208    时间: 2009-4-3 13:55
用法是MyObj. OnClassify(1)
对吗?

[ 本帖最后由 david208 于 2009-4-3 16:38 编辑 ]
作者: mythxhg    时间: 2009-5-21 17:59
是的




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2