2011-04-13 35 views
1

我正在使用JMeter加載測試用GWT編寫的webapp。在運行Java請求採樣器(使用SyncProxy)的JMeter中分離用戶會話在GWT應用程序中

我發現SyncProxy允許我編寫Java代碼以在應用服務器上執行遠程方法,就像我是客戶端(瀏覽器)一樣。

我把我的Java代碼封裝到一個實現了JMeter的JavaSamplerClient的類中。這意味着我可以在JMeter對象內運行自己的Java代碼,並根據測試邏輯執行它。

現在的問題。由於我沒有使用JMeter的HTTPSampler,我的用戶並沒有以我想要的方式行事,即彼此獨立。使用HTTPSampler + HTTP驗證管理器+ HTTP Cookie管理器時,我從來沒有遇到過這個問題。

我通過修改SyncProxy將驗證數據作爲額外的HTTP標頭髮送給每個請求來解決了基本驗證部分。

問題:如何最好地實施我擁有的工具,以便我的用戶獨立並不時互相竊取對方的會話?

回答

0

你可能會考慮重組。

使用JMETER採樣器登錄和維護會話,並將userID和會話信息(cookie或sessionID)傳遞到您的java類。

使用BeanShell的採樣器,您可以執行Java代碼,並有機會獲得JMeter的變量(用戶ID和會話信息,在這種情況下)

1

我在做一些非常相似的過程。

我的方法是有一個單獨的java採樣器充當會話創建和登錄機制。

syncproxy有一個多區段選項。會話實例存儲在靜態列表類中,會話信息可通過令牌進行選擇。令牌引用由jmeter線程變量構造而成。

然後,當您使用主要的syncproxy java採樣器時,請使用參數列表中的線程變量,並從正確的jmeter線程列表中選取正確的會話。

注意如果您使用多個會話並已使用AutoSyncProxy修補程序,則必須修改AutoSyncProxy.newProxyInstance方法以允許定義會話。

相關問題