C# 多线程-ms测试-数据驱动测试

C# 多线程-ms测试-数据驱动测试,c#,multithreading,mstest,data-driven,C#,Multithreading,Mstest,Data Driven,背景 我已经在“mstest”中编写了一个测试套件,它有一个XML模板 测试使用数据库中的数据填充此模板,并将其发布到web服务。当web服务响应时,输入的XML数据将与其响应中从服务接收的XML数据进行比较,并将条目记录在文本文件中 基本上,这个测试有一个入口点函数(它是唯一具有testmethod属性的函数),然后驱动测试中的所有其他函数 问题 问题是,当测试时间过长时。发布到web服务并获得回复几乎需要2分钟,我有100个这样的数据实例,因此至少需要200分钟才能完成 我的老板让我研究这个

背景

我已经在“mstest”中编写了一个测试套件,它有一个XML模板

测试使用数据库中的数据填充此模板,并将其发布到web服务。当web服务响应时,输入的XML数据将与其响应中从服务接收的XML数据进行比较,并将条目记录在文本文件中

基本上,这个测试有一个入口点函数(它是唯一具有testmethod属性的函数),然后驱动测试中的所有其他函数

问题

问题是,当测试时间过长时。发布到web服务并获得回复几乎需要2分钟,我有100个这样的数据实例,因此至少需要200分钟才能完成

我的老板让我研究这个测试中的多线程技术,希望能减少时间

我还想指出的一点是,我正在使用类似于中提到的DataSource属性查看不同的输入xml实例。不同之处在于,我使用数据库中的视图来运行datasource属性,而不是CSV文件

任何关于如何多线程测试和维护线程安全的想法都将受到极大的赞赏。
提前感谢

能否请您详细说明如何执行对“mstest”的调用? 如果您是手动执行测试执行,那么您可以非常轻松地添加多线程支持,并节省大量宝贵的时间,正如您的老板所想:)

我附上了此MSDN概述链接,其中还包括线程安全的基本知识:

如果您使用的是IDE/测试应用程序的内置选项,那么您可能会受限于它所提供的功能


等待您的回答。

TPL对我有效,只需确保每个变量都是局部变量

因此,您的问题一目了然:web服务需要2分钟才能完成。这是什么服务?你能加快这个部分的速度吗?它是一个QA服务器,公司的每件事都使用它,因此它的工作量很重,无法解决这个问题。问题是,如果工作量那么重,我认为你不能期望它通过一次发送100个查询来更快地完成。例如,如果这是一个数据库的db查询,而该数据库的索引配置很差,那么每个查询都需要大量的cpu和磁盘时间。由于这些资源有限,您的查询时间将延长100倍。@user602182如果我能很好地理解您上面的评论,您可以在公司所有员工都使用的环境中运行测试。这根本不是一个好的选择。您需要设置一个QA环境,只有您的团队有权执行他们的测试。您可能需要为测试的每个项目设置不同的环境。这将使您的测试不受影响。如果您不这样做,恐怕您无法解决您的问题。对不起,我不太明白“您如何执行对“mstest”的调用”?您的意思是什么?