2
  • 我使用VS 2010單元測試來創建負載測試。
  • BeginTimer/EndTimer用於測量響應時間。
  • 成功時,計時器按預期工作。

如果在應用程序中發生錯誤,我不希望計時器記錄響應時間。這將拋出分析報告。舉例來說,成功的OpenOrder方法可能需要30秒,但在失敗時(例如未找到訂單),OpenOrder可能會在2秒內返回。我希望響應時間指標僅代表成功的反應。VS 2010,負載/單元測試 - 忽略發生錯誤時的定時器

  • 另外,有沒有辦法來過濾不成功的定時器/交易 ?
  • 是否有另一種方法來做到這一點?除了 BeginTimer/EndTimer?

代碼段:

testContextInstance.BeginTimer("trans_01"); 

OpenOrder("123");// Execute some code 

// If the open fails, I want to disregard/kill the timer. 
// If I do a 'return' here, never calling EndTimer, the timer 
// is still ended and its response time recorded. 

testContextInstance.EndTimer("trans_01"); 

回答

1

這在單元測試API的缺乏。網絡測試API也有類似的缺陷。我也想要一種無視計時器的方式,但我認爲我們在這裏運氣不好。我認爲需要對微軟提出增強請求。

有(可能)一個(冗長的)解決方法:添加您自己的計時器(使用Stopwatch類),您可以隨意忽略/終止,並添加相關代碼以將結果行直接插入到交易表中在負載測試結果數據庫中(異步獲得最佳性能)。

但這太糟糕了。如果API只是提供了一個'KillTimer'方法,它會容易得多。

+0

我同意你的想法。我確實創建了一個單獨的表來寫出我自己的交易信息,其中包括通過/失敗類型值。似乎工作,但將不得不與SSRS合作建立一個有意義的報告。我會繼續調查,謝謝你讓我知道我並不孤單! – 2012-01-18 21:33:34