0

大家下午好

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

我正在尝试将 VB 自定义通信脚本迁移到 C# 服务。我已经成功迁移了一些较新的 QTP 脚本,但是却卡在了公司需要的几个旧脚本上。

QTP 脚本本身可以正常加载,直到使用以下 VB 代码行设置自定义参数:

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

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

方法一:

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

方法二:

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(Object Position) 在 TestLayer.Tests.Utilities.Qtp5Connection.SetTestSpecificParams()

界面似乎正在尝试查找指定的参数,但是在这种情况下,我已经知道它不存在并希望它添加参数。要在脚本中使用,但对于我的一生 - 我找不到在 C# 中添加自定义参数的方法。我假设这是在 VB 工作时工作的......

任何帮助将不胜感激。

4

1 回答 1

0

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

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

因此,为了实现这一目标,我在代码中采取了以下步骤:

  1. 打开 QTP 连接
  2. 打开 QTP 脚本
  3. 设置恢复和资源 - inc 参数
  4. 运行测试

我希望在这种情况下这对其他人有用。

于 2012-04-17T08:24:27.160 回答