我們在非gui模式下運行我們的測試,並傳入各種參數,如服務器,端口,線程等。我們還想在GUI模式下運行我們的測試,並能夠在GUI中更改這些參數。使用參數作爲用戶定義的變量?
我想要做的是使用2個用戶定義的變量對象,並且有一個帶有我們可以編輯的靜態數據,另一個帶有參數。這樣,實際的測試計劃不會改變,但我們可以將變量設置爲參數,並且僅禁用靜態數據。或者當我們想用靜態數據運行時禁用參數化的。
但這似乎不起作用 - 沒有錯誤沒有。
我們在非gui模式下運行我們的測試,並傳入各種參數,如服務器,端口,線程等。我們還想在GUI模式下運行我們的測試,並能夠在GUI中更改這些參數。使用參數作爲用戶定義的變量?
我想要做的是使用2個用戶定義的變量對象,並且有一個帶有我們可以編輯的靜態數據,另一個帶有參數。這樣,實際的測試計劃不會改變,但我們可以將變量設置爲參數,並且僅禁用靜態數據。或者當我們想用靜態數據運行時禁用參數化的。
但這似乎不起作用 - 沒有錯誤沒有。
你是如何從非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}
如果使用用戶參數,它將是與上述相同的概念。
我做了類似的事情,但我爲此使用了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中傳入參數。這對我很好。
其實我正在使用一個名爲正則表達式獲取值的函數。 在這裏我不得不使用變量下的變量,因爲有很多價值與相同的邊界,所以我選擇了一個段落爲${ABC}
和取自這一段的價值${XYLEM}
。這兩個變量創建爲正則表達式。嘗試使用${__V(ABC${XYLEM})};
${__setProperty{Search_Investment_Banking,$Investment_Banking}};
謝謝,您的示例使用默認值幫助我! – 2015-01-22 15:34:56