2011-05-23 58 views
4

我們在非gui模式下運行我們的測試,並傳入各種參數,如服務器,端口,線程等。我們還想在GUI模式下運行我們的測試,並能夠在GUI中更改這些參數。使用參數作爲用戶定義的變量?

我想要做的是使用2個用戶定義的變量對象,並且有一個帶有我們可以編輯的靜態數據,另一個帶有參數。這樣,實際的測試計劃不會改變,但我們可以將變量設置爲參數,並且僅禁用靜態數據。或者當我們想用靜態數據運行時禁用參數化的。

但這似乎不起作用 - 沒有錯誤沒有。

回答

1

你是如何從非GUI模式傳遞值的?通過CSV,使用屬性,用戶參數等?

如果CSV,這是一個簡單的修復。只需在測試計劃級別創建一個用戶定義的變量(UDV)對象,並「硬編碼」所有參數(服務器,端口等)。保持您的CSV配置。如果以GUI模式運行,請禁用CSV並啓用UDV。保存文件時,請保持啓用CSV並禁用UDV - 這樣,當您從非GUI運行時,它將讀取CSV文件。

如果使用屬性,我會執行以下操作:創建一個包含所有參數(服務器等)的UDV。在輸入值之前,複製組件,以便擁有兩個相同的UDV。在UDV 1中,從命令行輸入屬性值。在UDV 2中,輸入「硬編碼」值。在整個腳本中,用變量引用替換對屬性的所有引用。它看起來像這樣:

 UD1:        UD2: 
    Name  Value     Name  Value 
    SERVER  ${__P(Server)}   SERVER  devdomain.com 
    PORT  ${__P(Port)}   PORT  4111 


Some HTTP Request 

Domain: ${SERVER} 

如果使用用戶參數,它將是與上述相同的概念。

4

我做了類似的事情,但我爲此使用了UDF。

我所做的是設置了我的變量並使用默認值。

VARNAME  VALUE 
otl_PROTOCOL ${__P(otl_protocol,https)} 
otl_PORT  ${__P(otl_port,443)} 
otl_THREADS ${__P(otl_threads,1)}  
otl_REPS  ${__P(otl_reps,1)} 
otl_RAMP  ${__P(otl_ramp,0)} 

我也爲服務器名稱做了一個。這樣,我可以在這裏使用默認值,或者我可以在命令行參數或我的user.properties中傳入參數。這對我很好。

+0

謝謝,您的示例使用默認值幫助我! – 2015-01-22 15:34:56

0

其實我正在使用一個名爲正則表達式獲取值的函數。 在這裏我不得不使用變量下的變量,因爲有很多價值與相同的邊界,所以我選擇了一個段落爲${ABC}和取自這一段的價值${XYLEM}。這兩個變量創建爲正則表達式。嘗試使用${__V(ABC${XYLEM})};

${__setProperty{Search_Investment_Banking,$Investment_Banking}}; 
相關問題