并行执行单个selenium测试多次

并行执行单个selenium测试多次,selenium,parallel-processing,nunit,Selenium,Parallel Processing,Nunit,我想知道是否有人对简单方法或并行多次执行单个selenium测试有任何建议 [TestFixture, Parallelizable(ParallelScope.All)] public class MyTestFixture { private static readonly IEnumerable<string> TestCases = new List<string>(new string[10]); [TestCaseSource(nameof(

我想知道是否有人对简单方法或并行多次执行单个selenium测试有任何建议

[TestFixture, Parallelizable(ParallelScope.All)]
public class MyTestFixture
{
    private static readonly IEnumerable<string> TestCases = new List<string>(new string[10]);

    [TestCaseSource(nameof(TestCases))]
    public void SingleTestRepeatedMultipleTimes(string testCase)
    {
        //test steps
    }
}
我有一个我想执行的测试,它将启动10个chrome实例并并行运行测试10次,这是一个测试负载/性能的想法

我可以把测试分成几个单独的类,让它们并行运行,但这有点过分了,有没有更简单的方法来运行Nunit

测试是用c语言编写的,我们在测试运行程序中使用NUnit,在测试语言中使用BDDfy


写下来有点困难,但希望一些人理解我试图实现的目标

您可以通过在同一个测试中添加多个测试用例来实现,即使您没有任何参数要传递给测试,也可以使用
ParallelScope.All
on fixture并行运行fixture中的所有测试用例

[TestFixture, Parallelizable(ParallelScope.All)]
public class MyTestFixture
{
    private static readonly IEnumerable<string> TestCases = new List<string>(new string[10]);

    [TestCaseSource(nameof(TestCases))]
    public void SingleTestRepeatedMultipleTimes(string testCase)
    {
        //test steps
    }
}
[TestFixture,可并行化(ParallelScope.All)]
公共类MyTestFixture
{
私有静态只读IEnumerable TestCases=新列表(新字符串[10]);
[TestCaseSource(名称(TestCases))]
public void SingleTestRepeatedMultipleTimes(字符串测试用例)
{
//测试步骤
}
}

您可以选择几个选项——您提到了C#和NUnit,因此我认为使用NUnit的
可并行化
属性是最简单的方法之一。我认为您在这里使用了错误的工具。Selenium对于性能测试不是很好。这方面有专门的工具。这当然不能回答你的问题。在你把一个方形的钉子(硒)敲入一个圆孔(性能测试)之前,先研究一下哪个性能测试解决方案最适合你的需要。你只需要在每个驱动程序自己的线程中运行它。。。一个驱动程序=一个浏览器。。。但是Greg是对的,Selenium在创建大量负载方面会非常糟糕。如果你还想用它做一些轻负荷测试,我建议你使用无头chrome,或者HTMLUnit作为浏览器。那里的开销要小得多。