我有爲wcf服務編寫的單元測試用例。現在我需要在多個線程上運行單個測試用例來檢查性能。即如果該特定方法被多個用戶調用(需要是一個自定義號碼,即從20-500的任何號碼)。我怎樣才能做到這一點? 我已經通過了Parallel.For和Task Prallel Library。但無法爲我的要求取得任何成果。需要多線程環境運行單個測試用例,即需要在多個線程上運行單個測試用例
1
A
回答
2
嗯...希望這有助於...
要在其他線程中運行的方法,簡單地做:
new System.Threading.Thread(() => YourMethodName()).Start();
這可以多次使用。
請注意,此方法返回void並且不會收到任何參數。
達到你想要什麼,你需要做的:
for (int i = 0; i <= 500; i++)
{
new System.Threading.Thread(() => YourMethodName()).Start();
}
注:
一)有了這個代碼,你不知道當一個線程將結束。要驗證線程何時完成,您需要使用.IsAlive屬性。例如:
Thread t = new System.Threading.Thread(() => YourMethodName());
t.Start();
要驗證:
if (t.IsAlive)
{
// running
}
else
{
// finished
}
2)異常不能從外部處理。您需要處理線程內的所有異常,否則如果引發異常,程序將中斷。
3)您不能訪問線程內的UI元素。要訪問UI元素,您需要使用Dispatcher。
編輯
您可以在其他線程做更多的事情不僅僅是射擊的方法。
可以傳遞參數:
new System.Threading.Thread(() => YourMethodName(a, b, c)).Start();
可以比單一方法運行更多:
new System.Threading.Thread(() =>
{
YourMethodName(a, b, c);
OtherMethod(a);
}).Start();
而且你可以收到值從線程返回:
int x = 0;
new System.Threading.Thread(() => { x = YourMethodName(); }).Start();
要知道x何時從線程接收到值,可以這樣做(讓我們假設一個int):
int x
{
set { VariableSetted(value); } // fire the method
} // put it in global scope, outside the method body
和
new System.Threading.Thread(() => { x = YourMethodName(); }).Start();
和運行時該線程返回值的方法:
public void VariableSetted(int x)
{
// Do what you want with the value returned from thread
// Note that the thread started this method, so if you need to
// update UI objects, you need to use the dispatcher.
}
如果您正在使用WPF使UI我不知道,但如果是,更新屏幕,你可以這樣做:
new System.Threading.Thread(() =>
{
string result = YourMethodName();
this.Dispatcher.Invoke((Action)(() => { yourTextBox.Text = result; }));
}).Start();
你也可以sta rt嵌套線程(線程內線程)。
相關問題
- 1. 從單個測試用例中運行多個TestNG測試用例
- 2. 如何使用測試在ruby中運行多個測試用例:單元
- 3. UFT - 在QTP中運行單個測試用例,但部分流程需要迭代多次
- 4. CppUnit的:運行單個測試案例
- 5. 如何在循環中運行多個Python測試用例?
- 6. 在jbehave上運行多個測試用例
- 7. 如何在一個文件中運行多個測試用例
- 8. 當需要運行項目時,運行MSTest單元測試
- 9. 多線程單元測試
- 10. 多線程單元測試
- 11. 多線程單元測試
- 12. 想要在Jenkins的遠程Unix服務器上運行單元測試用例
- 13. 運行個人參數測試用例
- 14. 如何在Ruby測試::單位框架運行單個早該環境測試
- 15. UTF16/32測試用例(需要否定測試用例)
- 16. 使用Zend在單個文件中運行多個PHPUnit測試?
- 17. 同時在Selenium中運行多個測試用例
- 18. 無法在Eclipse中運行多個測試用例PyUnit
- 19. 如何在nose2中運行單個測試用例
- 20. 如何在Eclipse中運行Junit中的單個測試用例?
- 21. 如何在XCTest中運行「單個測試用例」?
- 22. 執行單個測試用例django_webtest
- 23. 對多個文件運行Python單元測試測試
- 24. 如何使用Selenium連續運行單個測試用例?
- 25. 如何使用Eclipse PyDev運行單個鼻子測試用例?
- 26. 如何使用Monkeyrunner運行單個測試用例
- 27. 多線程需要多個管道
- 28. 簡單線程示例需要
- 29. 與多線程並行運行多重測試
- 30. 測試單線功能有多重要?
爲什麼不使用JMeter或HPLoadRunner?這些軟件旨在執行這種測試。 – tazyDevel
tazyDevel我需要執行此測試通過編碼,而不是使用任何工具.. :)無論如何感謝您的迴應.. :) – Ranjit