下午好,
我目前正在使用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工作......
任何帮助都会有很大的吸引力。
答案 0 :(得分:0)
自从我发布并找到解决方案后,我一直在努力解决这个问题。
您确实使用方法1 但是您需要确保已打开目标脚本。我假设您要连接的QTP脚本需要设置为接收参数。
以下是我在代码中采取的以下步骤:
我希望在这种情况下,这对其他人有用。