51Testing软件测试论坛

标题: 关于QTP自动对象模型的问题 [打印本页]

作者: lileo    时间: 2006-9-25 16:47
标题: 关于QTP自动对象模型的问题
各位大虾!小弟有一问题请教!用外部的程序去自动调用qtp并且设置一些测试属性和调用一些action后自动测试,这些是qtp的automation object model所支持的操作!

     但小弟用vc++6.0创建了一个Win32 Console Application的项目,并且写了如下code:

// qtp.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#import "QTObjectModel.dll"

int main(int argc, char* argv[])
{
        QuickTest::_ApplicationPtr spApp; // Declare the application pointer
       
        spApp.CreateInstance("QuickTest.Application"); // Create the application object

        spApp->Launch();// Launch the application

        spApp->Visible = VARIANT_TRUE; // Make it visible
       
        return 0;
}

编译通过,但是一实行程序就down了,debug之后知道,变量spApp在createInstance之后,指针的值是0x00000000,所以会down!
我并不知道为什么会这样,请各位大虾,不吝赐教!
作者: xiaonan    时间: 2006-9-25 17:10
这里放个vbscript脚本,建议参考一下帮助,里面介绍了很多例子,并付有代码
Dim qtApp ' As QuickTest.Application ' 声明 Application 对象变量
Dim qtTest 'As QuickTest.Test ' 声明 Test 对象变量
Dim qtResultsOpt 'As QuickTest.RunResultsOptions ' 声明 Run Results Options 对象变量

Set qtApp = CreateObject("QuickTest.Application") ' 创建 Application 对象
qtApp.Launch ' 启动 QuickTest
qtApp.Visible = True ' 使 QuickTest 应用程序可见

' 设置 QuickTest 运行选项
qtApp.Options.Run.CaptureForTestResults = "OnError"
qtApp.Options.Run.RunMode = "Fast"
qtApp.Options.Run.ViewResults = False

qtApp.Open "C:\Tests\Test1", True ' 以只读模式打开测试

' 为测试设置运行设置
Set qtTest = qtApp.Test
qtTest.Settings.Run.IterationMode = "rngIterations" ' 仅运行循环 2 到 4
qtTest.Settings.Run.StartIteration = 2
qtTest.Settings.Run.EndIteration = 4
qtTest.Settings.Run.OnError = "NextStep" ' 指示 QuickTest 在发生错误时执行下一步骤

Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions") ' 创建 Run Results Options 对象
qtResultsOpt.ResultsLocation = "C:\Tests\Test1\Res1" ' 设置结果位置

qtTest.Run qtResultsOpt ' 运行测试

MsgBox qtTest.LastRunResults.Status ' 检查测试运行的结果
qtTest.Close ' 关闭测试

Set qtResultsOpt = Nothing ' 释放 Run Results Options 对象
Set qtTest = Nothing ' 释放 Test 对象
Set qtApp = Nothing ' 释放 Application 对象

[ 本帖最后由 xiaonan 于 2006-9-25 17:13 编辑 ]
作者: lileo    时间: 2006-9-25 17:15
谢谢!不过用vbscript肯定是可以的,我也试过了,不过我就是想用c++来试。
作者: 隐形人    时间: 2008-4-1 15:23
标题: 回复 3# 的帖子
你现在找到办法了吗?
作者: bagwell333    时间: 2008-4-1 15:57
如果声明的spApp是指针,那么它应该指向一个new后的对象。并且调用成员应该用-〉。
不知道LZ这段代码是有部分依据还是想当然这样做?




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