2011-07-28 139 views
5

我正在使用Visual Studio負載測試測試大型BizTalk系統。加載測試將消息推送到MQ中,這些由BizTalk拾取並處理。在Visual Studio負載測試中指定測試結束條件

當Visual Studio完成向MQ注入消息後,我並不希望測試結束(並且所有性能計數器都結束),我希望測試在滿足某些條件時(在我的情況下爲if (SELECT COUNT(*) FROM BizTalkMsgBoxDb.dbo.Spool) == 4)結束。

我可以看到一系列測試完成後運行的東西,但沒有明顯的方式來擴展測試並繼續監視,除非滿足某些用戶定義的退出條件。

這是可能的,或者,如果沒有,有沒有人有一個很好的解決方案/黑客實現這一想法?

回答

0

在撰寫本文時,無法通過自定義負載測試插件延長測試的持續時間,也無法通過拒絕退出的虛擬用戶類型,也不能通過鎖定關閉期測試並阻止它以這種方式退出。

我們設法做這樣的事情的唯一方法是直接操作LoadTest數據庫,然後從日誌文件中注入性能計數器數據,但這既不聰明也不推薦。

哦..

1

我想象的要保持負荷試運行排隊了一堆的請求,以便繼續監視性能,同時請求被處理後。雖然我們無法控制負載測試持續時間,但有一種方法可以實現這一點。

  1. 不要限制測試時間:設置負載測試持續時間(或迭代次數),以非常大的值 - 大於你預期(或不知道),它會爲最終條件滿意。
  2. 限制排隊請求的場景:在負載測試場景屬性中的選項部分,設置最大測試迭代次數,以便在發送所需數量的請求後用戶負載將降至零。如果出於某種原因無法設置迭代限制,則可以編寫一個負載測試插件,在特定的測試時間過後,將用戶負載設置爲零。
  3. 檢查結束條件:編寫一個Web測試插件,檢查數據庫中的最終條件。將該插件附加到新場景中的新WebTest,並在該場景中設置測試迭代間的思考時間,以便測試僅按需要運行(60秒?)。當達到條件時,插件應該向用戶上下文中寫入一個預定義的值(用戶上下文可以在Web測試上下文中作爲$LoadTestUserContext訪問,並且僅在負載測試中可用,而不是在運行webtest獨立時可用)。
  4. 終止測試:編寫一個負載測試插件,在TestFinished事件中查找用戶上下文中的標誌值。當找到該值時,該插件調用LoadTest.Abort()

該方法有一個小缺點:測試狀態在結果數據庫中標記爲Aborted

相關問題