2012-06-19 95 views
3

我的問題涉及使用QTP/VBScript。將類的數組傳遞給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頁,我編輯的參數屬性通過:
Edit-> Action-> ActionProperties。我選擇參數選項卡。
其中,我可以選擇定義傳入參數和每種類型的數量。這些可用的類型似乎是受到以下限制:

字符串,布爾值,日期,號碼,密碼,任何

我把我的第一個參數爲:數
設置我的第二個參數爲:布爾
設置我的第三個參數爲:任何

一旦運行就提示我這個:

您在RunAction 語句中爲'myArray'參數指定的類型與操作中定義的類型不匹配。

問:我能夠通過數和布爾很好,但是當一個數組參與,QTP/VBScript中似乎沒有處理好。爲什麼我無法通過主啓動文件中的參數將數組傳遞給動作?這似乎是一個常見而簡單的任務。我可能會這麼錯嗎?

任何幫助表示讚賞。謝謝。

+0

製作部是不錯的主意,但把一些代碼,而不是這樣更好 – Amol

+1

我修改的格式是更簡潔。 – user1466813

回答

3

據我所知,QTP將不是允許這。沒有可用於表示數組的參數類型。這可能是QuickTest Professional的限制。

與傳遞數組不同,您可以將數組元素作爲以分隔符分隔的字符串傳遞。

例如: 「Item1^Item2^............」其中「^」是分隔符 然後您可以使用vb腳本的分割函數來恢復數組。

再次做同樣的事情與目標,我們不得不放棄嘗試這個

0

不知道你正在嘗試做一些更多的代碼可能會給一個更好的想法是什麼。是否有理由需要整個數組,而不僅僅是數組中的特定項目?將項目拆分爲項目可能是您最好的選擇,但我不確定您要完成的是什麼。

0

在你的行動使用庫文件... 在LIB 但最終對任何情況下的測試或互爲作用vararray = NULL rodrigonw創建陣列公衆。 Sugestion ...使用的功能包括在你的行動你的LIB(庫路徑)的問題,瞭解

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 
+1

請添加一行或兩行來解釋/總結您的答案。 – demongolem

+0

ps ... at for destrocty arrayyy any interation –

相關問題