我的问题涉及使用QTP / VBScript。
目标:从qtp主起始文件中,初始化一个类数组,并通过参数将该数组作为参数传递给可重复使用的操作。
问题:我无法将一组类传递给可重复使用的操作。
详细信息:
我有两个文件:“application_main”和“personal_action”。
application_main是qtp / vbscript的入口点 personal_action是一个可重复使用的动作
在application_main中,我们调用了InvokeApplication,然后进行了一些其他的声明。
我可以初始化一个数组,然后继续将它作为参数从我的application_main传递给我的personal_action:
来自application_main:
Dim myArray
myArray = new Array(object1, object2, object3)
RunAction “personal_action”, oneIteration, myInteger, myBoolean, myArray
在personal_action页面上,我通过以下方式编辑参数属性:
编辑 - >动作 - > ActionProperties 。我选择了参数标签
在其中,我可以选择定义传入参数的数量和每个单独的类型。这些可用类型似乎仅限于:
字符串,布尔值,日期,数字,密码,任何
我将我的第一个参数设置为:数字
我将我的第二个参数设置为:Boolean
我将我的第三个参数设置为:任何
运行时,系统会提示我:
您在RunAction中为“myArray”参数指定的类型 语句与操作中定义的类型不匹配。
问题:我能够传递Number和Boolean,但是当涉及到一个数组时,qtp / vbscript似乎无法很好地处理它。为什么我无法通过主启动文件中的参数将数组传递给操作?这似乎是一项普通而简单的任务。我可以这么错吗?
感谢任何帮助。谢谢。
答案 0 :(得分:3)
据我所知,QTP NOT 允许这样做。没有可用于表示Array的参数类型。这可能是QuickTest Professional的限制。
您可以将Array元素作为以分隔符分隔的字符串传递,而不是传递数组。
实施例: “Item1 ^ Item2 ^ ............”其中“^”是分隔符 然后你可以使用vb脚本的split函数来恢复你的数组。
再次对对象做同样的事情,我们必须尝试这个
答案 1 :(得分:0)
不确定您要做什么,更多代码可能会提供更好的主意。是否有理由需要整个数组而不仅仅是数组中的特定项?将数组拆分为项目可能是您最好的选择,但我再次确定您要完成的是什么。
答案 2 :(得分:0)
在你的行动中使用lib文件...... 在lib中创建数组public 但最终对于任何案例测试或互动vararray = null rodrigonw。 Sugestion ...使用函数将你的lib包含在你的动作中(lib路径)
答案 3 :(得分:0)
Lib soluction
''######################################LIB"
'lib Passsagem de valores entre array
Dim arrayyy()
Sub setArrayyy(strvalores,redimencionaArray)
On error resume next
tamanho=UBound(arrayyy,1)
If Err.Number=9 then
ReDim arrayyy(0)
redimencionaArray=false
end if
err.Clear
On error goto 0
If redimencionaArray Then
tamanho=tamanho+1
ReDim preserve arrayyy(tamanho)
end if
arrayyy(tamanho)=strvalores
'arrayyy=arrayyy
End Sub
function getArrayyy() getArrayyy=arrayyy End function
''######################################"'Action X
call setArrayyy("X",false)
call setArrayyy("A",true)
call setArrayyy("D",true)
call setArrayyy("B",true)
''######################################'Action y
x=getArrayyy()
for countx=0 to ubound(x)
msgbox x(countx)
next