我有为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