51Testing软件测试论坛

标题: QTObjectModel棘手问题 [打印本页]

作者: dezhao_huang    时间: 2005-11-9 19:26
标题: QTObjectModel棘手问题
'************************************************************************************************************************
'Description:
'
'This example opens a test with predefined parameters,
' gets a collection of parameter definitions, Loops on it and display each parameter details,
' gets a collection of run-time parameters, change the value of one of them, run the test with parameters,
' after the test run - display the value of one of the out parameters.
'
'Assumptions:
' the test D:\Tests\Mytest contain in parameter called "InParam1" and out parameter called "OutParam1"
'************************************************************************************************************************


Dim qtApp 'As QuickTest.Application ' Declare the Application object variable
Dim pDefColl 'As QuickTest.ParameterDefinitions ' Declare a Parameter Definitions collection
Dim pDef ' As QuickTest.ParameterDefinition ' Declare a ParameterDefinition object
Dim rtParams 'As QuickTest.Parameters ' Declare a Parameters collection
Dim rtParam ' As QuickTest.Parameter ' Declare a Parameter object
'Dim cnt, Indx As Integer

Set qtApp = CreateObject("QuickTest.Application") ' Create the Application object
qtApp.Launch ' Start QuickTest
qtApp.Visible = True ' Make the QuickTest application visible

qtApp.Open "D:\Tests\MyTest"

' Retrieve the parameters collection defined for the test.
Set pDefColl = qtApp.Test.ParameterDefinitions

cnt = pDefColl.Count
Indx = 1

' Display the names and values of each of the parameters in the collection.
While Indx <= cnt
    Set pDef = pDefColl.Item(Indx)
    MsgBox "Param name: " & pDef.Name & "; Type: " & pDef.Type & "; InOut: " & pDef.InOut & "; Description: " _
        & pDef.Description & "Default value: " & pDef.DefaultValue
    Indx = Indx + 1
Wend

Set rtParams = pDefColl.GetParameters() ' Retrieve the Parameters collection defined for the test.

Set rtParam = rtParams.Item("InParam1") ' Retrieve a specific parameter.
rtParam.Value = "Hello" ' Change the parameter value.

qtApp.Test.Run , True, rtParams ' Run the test with changed parameters.

MsgBox rtParams.Item("OutParam1").Value ' Display the value of an output parameter after the test runs.

脚本运行的时候总是有错误。
Set pDefColl = qtApp.Test.ParameterDefinitions
这句运行需要QTP中对Test究竟要怎样的设置?
望大侠指点迷津。谢谢!

[ 本帖最后由 dezhao_huang 于 2005-11-21 12:55 编辑 ]
作者: QA_BAY    时间: 2005-11-10 09:37
我猜你应该是取不到parameter definitions
才会失败
这个脚本是你自己写的吗?
还是自带的例子!
作者: lovetest6    时间: 2005-11-10 10:26
Originally posted by dezhao_huang at 2005-11-9 07:26 PM:
'************************************************************************************************************************
脚本运行的时候总是有错误。
Set pDefColl = qtApp.Test.ParameterDefinitions
这句运行需要QTP中对Test究竟要怎样的设置?
望大侠指点迷津。谢谢!


哪里出错了呢?楼主是不是能附上一些描述啊?
至少要说说是什么错误吧?

即便有大虾,也要知道迷津在何处啊:)呵呵
作者: lovetest6    时间: 2005-11-10 10:43
to QA_BAY:
这是ParameterDefinition Object 中的代码。
作者: QA_BAY    时间: 2005-11-10 12:01
谢谢啦.我回去找找!
作者: dezhao_huang    时间: 2005-11-21 09:47
多谢两位热心版主!问题我已经解决了,我在测脚本的时候没有设置Test对应的参数,所以取不到定义集合,只怪这个自带的例子说的不详细。呵呵。
不知道QTObjectModel对象模型哪位有使用的经验啊。我做的一个小工具里需要用到它,在使用Test.Open和Test.Run的时候偶尔会有QTP内存读写错误。稍后附上我的Code。
谢谢啦!

[ 本帖最后由 dezhao_huang 于 2005-11-21 10:08 编辑 ]
作者: dezhao_huang    时间: 2005-11-21 12:49
具体表现是QTP失去响应,以只读方式打开Test的时候,使用QTObjectModel里的Open方法。如果第一次打开的是Test1(read only方式),然后再打开一次,QTP就失去响应了,除非右键等方式激活一下QTP。况且我的程序设定QTP Application的Visible是FALSE。这个问题困扰我很久了。
作者: dezhao_huang    时间: 2005-11-21 12:51
//HRESULT Open ( _bstr_t TestPath, VARIANT_BOOL OpenInReadOnlyMode, VARIANT_BOOL SaveCurrent )
HRESULT ResultRet = g_spApp->Open(bstrTest,TRUE,FALSE);
//bstrTest为我的Test名
作者: dezhao_huang    时间: 2005-12-21 15:03
标题: Last
没有人可以帮我或者讨论一下吗???
作者: E22E    时间: 2007-8-10 19:13
顺便问上一句,例子是哪儿的? 是qtp自带的?
作者: E22E    时间: 2007-8-13 15:43
这个帖子对我帮助很大,表示感谢了!




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