QTP dll库 - 参数

时间:2012-04-16 14:35:50

标签: c# .net vbscript qtp

下午好,

我目前正在使用MVC.Net开发集成测试门户。

我正在尝试将VB自定义通信脚本迁移到C#服务。我已成功迁移了许多较新的QTP脚本,但是已经陷入了comapny所需的几个遗留脚本。

QTP脚本本身加载到使用以下VB代码行设置自定义参数的点:

Set oParameters = oQTPApplication.Test.ParameterDefinitions.GetParameters()
oParameters.Item("sEnvironment").Value = sEnvironmentForDataTable

一旦代码通过各种其他设置(成功打开并连接到QTP,然后点击转换后的行:

方法1:

var parameters = this.Connection.Test.ParameterDefinitions.GetParameters();
parameters["sEnvironment"].Value = this.Test.TestEnvironment;

方法2:

this.Connection.Test.ParameterDefinitions["sEnvironment"].DefaultValue = this.Test.TestEnvironment;

两者都抛出异常:

  

System.Runtime.InteropServices.COMException

     

找不到元素。 (来自HRESULT的异常:0x8002802B(TYPE_E_ELEMENTNOTFOUND))

     

在System.RuntimeType.ForwardCallToInvokeMember(String memberName,BindingFlags flags,Object target,Int32 [] aWrapperTypes,MessageData& msgData)   在QTObjectModelLib.ParameterDefinitions.get_Item(对象位置)   在TestLayer.Tests.Utilities.Qtp5Connection.SetTestSpecificParams()

接口似乎试图找到指定的参数,但在这种情况下我已经知道它不存在并希望它添加参数。在脚本中使用但是对于我的生活 - 我无法找到一种在C#中添加自定义参数的方法。我认为这是因为VB工作......

任何帮助都会有很大的吸引力。

1 个答案:

答案 0 :(得分:0)

自从我发布并找到解决方案后,我一直在努力解决这个问题。

您确实使用方法1 但是您需要确保已打开目标脚本。我假设您要连接的QTP脚本需要设置为接收参数。

以下是我在代码中采取的以下步骤:

  1. 打开QTP连接
  2. 打开QTP脚本
  3. 设置恢复和资源 - inc param(s)
  4. 运行测试
  5. 我希望在这种情况下,这对其他人有用。