我有一個Visual Studio 2010負載測試,其中包含一些Web性能測試。運行網絡性能測試需要您登錄到被測網站。因此,負載測試包含一個初始化步驟 - 一個小型web性能測試,它會執行登錄,並使用插件來緩存如此獲得的cookie。 「真正的」網絡性能測試 - 實際上做的工作也是每個那些有插件,讀取緩存的cookie並把它添加到測試,讓每個測試運行正常:需要登錄的Web性能測試:如何使它在隔離和負載測試中工作?
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
if (CookieCache.Cookies != null) // CookieCache is a static class of mine
e.WebTest.Context.CookieContainer.Add(CookieCache.Cookies);
問題雖然這一切運行絕對正常,當我運行負載測試,這意味着我不能孤立運行任何網絡性能測試,因爲如果負載測試初始化沒有運行,那麼就沒有cookie,所以網絡性能測試將不會登錄,並會失敗。
有沒有針對這種情況推薦的解決方案?換句話說,如果一個Web性能測試需要登錄,是否有任何方法可以讓它獨立運行並且它是負載測試的一部分?
最顯而易見的方法來運行隔離每個Web性能測試將是有它首先調用登錄測試,但我不能這樣做,因爲那將是不正確的行爲的負載測試(其中登錄應該發生每個用戶只有一次,就在負載測試開始時)。
感謝您的幫助 - 非常感謝。不幸的是,你的建議基本上是我們已經在做的。正如你所說的那樣,添加一個init測試意味着web性能測試可以正常工作*當它在負載測試中時*但不能解決讓web性能測試始終工作的問題,而不管它是否在負載測試中。這是因爲如果您在負載測試之外運行Web性能測試,那麼Init測試是否特定負載測試,因此無法運行。 – PhantomDrummer 2012-04-24 08:48:35