2011-09-08 51 views
1

我正在測試基於Java/GWT/GAE的servlet。我的一個servlet訪問通常通過RPC從客戶端調用的數據存儲(CRUD類型方法)。我如何從gwt/gae上的servlet註銷/登錄爲其他用戶

流程如下工作: 我啓動testServlet1。如果我沒有登錄,它會生成登錄網址並將其返回給用戶。我點擊它。 (現在我登錄了。)

testServlet1運行,測試我的DAO,並驗證最終的數據庫狀態。

testServlet2現在要使用不同的登錄用戶將對象添加到數據存儲區,以確保user1和user2之間不存在干擾。

我的問題是:如何通過編程方式在servlet中「切換」登錄用戶,而無需手動點擊註銷/登錄鏈接或在客戶端自動執行此操作?

似乎沒有這個API。

任何人都這樣做?

感謝 羅布

+0

集成測試有什麼用?硒?是不是它爲每個測試開始一個新的清潔會話? –

+0

不,我沒有使用Selenium。我只是簡單地從我編寫的其他servlet調用我的servlet。登錄由常規的GAE聯合登錄servlet處理。您生成登錄和註銷URL並且用戶訪問它們以登錄和註銷。最後,當我需要以不同用戶身份繼續測試時,我只需從我的servlet調用這些URL。 –

回答

1

每個請求都應該做自己的身份驗證。你可以用filters很好地實現這一點。基本上,他們攔截每個請求,並可以在將請求傳遞給最終預期的servlet之前進行任意計算。你可以讓一個過濾器說:「如果用戶沒有登錄,返回登錄屏幕;否則,按照預期的方式轉到servlet,以登錄用戶作爲參數。」

+0

是的,每個請求都有自己的認證。登錄/註銷正在工作。我只是想知道是否有一個用於登錄/註銷的內部API,用於測試servlet可以使用的API,而不是使用URL。我現在正在使用這些網址,而且工作正常。 –

+0

對不起,我不認爲我理解你的問題。用戶服務將返回當前登錄的用戶。你不能以編程方式登錄某人 - 他們必須這樣做。 –

+0

是的,這使得從服務器駕駛測試程序變得困難。你必須開始從客戶端登錄的測試。請注意,這不是關於生產過程中的運行,而是系統測試期間的運行。 –

1

考慮到似乎沒有專門爲此的api,我只是調用登錄和註銷url gae直接從我的servlet提供。

相關問題