一次用 c# 编写测试用例 50 个人在 asp.net c# 中调用相同的进程
Write Test case in c# at a time 50 people call same process in asp.net c#
我想创建允许一次命中 50 次的测试用例,分别获得它们的结果。
想知道如果一次来50个人会怎样
如果您希望创建负载测试,那么您可以使用 visual studio enterprise 2017 创建和 运行 负载测试。
您也可以使用像 JMeter 这样的免费工具,虽然不是很花哨,但可以完成工作。
你没有提到你为什么不想使用 foreach
,但这里有一个用 LINQ 来做的方法,假设你有一个可以用函数调用的单用户测试命名为 ExecuteTestForAUser()
(您的可能不同):
const numberOfTests = 50;
var tasks = Enumerable.Range(1, numberOfTests)
.Select
(
i => Task.Run( () => ExecuteTestForAUser() )
)
.ToArray();
Task.WaitAll( tasks );
此代码使用 Enumerable.Range
生成包含 50 个整数的列表。然后使用 Select
将该列表转换为包含 50 个任务的列表。 Task.Run()
将把每个任务放到线程池中。然后 Task.WaitAll()
将阻塞执行,直到它们全部完成。
您需要确保 ExecuteTestForAUser()
是线程安全的。
我想创建允许一次命中 50 次的测试用例,分别获得它们的结果。
想知道如果一次来50个人会怎样
如果您希望创建负载测试,那么您可以使用 visual studio enterprise 2017 创建和 运行 负载测试。
您也可以使用像 JMeter 这样的免费工具,虽然不是很花哨,但可以完成工作。
你没有提到你为什么不想使用 foreach
,但这里有一个用 LINQ 来做的方法,假设你有一个可以用函数调用的单用户测试命名为 ExecuteTestForAUser()
(您的可能不同):
const numberOfTests = 50;
var tasks = Enumerable.Range(1, numberOfTests)
.Select
(
i => Task.Run( () => ExecuteTestForAUser() )
)
.ToArray();
Task.WaitAll( tasks );
此代码使用 Enumerable.Range
生成包含 50 个整数的列表。然后使用 Select
将该列表转换为包含 50 个任务的列表。 Task.Run()
将把每个任务放到线程池中。然后 Task.WaitAll()
将阻塞执行,直到它们全部完成。
您需要确保 ExecuteTestForAUser()
是线程安全的。