为了账号安全,请及时绑定邮箱和手机立即绑定

Selenium Visual 的并行测试

Selenium Visual 的并行测试

C#
catspeake 2021-11-21 15:37:54
我正在尝试使用硒进行并行测试。我正在做的是复制和粘贴测试类,只要我希望我的测试被执行。然后我只需按运行所有测试,它就可以正常工作,但我想知道我是否可以在一个类中多次运行一种方法,而不是复制和发布它。有没有办法做到这一点?
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

解决方案基本上取决于您使用的测试框架。NUnit 从 3.7 版本开始支持并行测试执行。演示该想法的示例如下


using NUnit.Framework;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading;


namespace ConsoleApp1

{

    [TestFixture]

    public class Dummy

    {

        static TestCaseData Case(int i)

            => new TestCaseData(TimeSpan.FromSeconds(2)).SetName($"Case {i}");


        public static IEnumerable<TestCaseData> Cases()

            => Enumerable.Range(1, 5).Select(Case);


        [TestCaseSource(nameof(Cases)), Parallelizable(ParallelScope.Children)]

        public void ItShouldSleep(TimeSpan t)

            => Thread.Sleep(t);



        static TestCaseData Case2(int i)

            => new TestCaseData(TimeSpan.FromSeconds(2)).SetName($"Case2 {i}");


        public static IEnumerable<TestCaseData> Cases2()

            => Enumerable.Range(1, 5).Select(Case2);


        [TestCaseSource(nameof(Cases2)), Parallelizable(ParallelScope.Children)]

        public void ItShouldSleep2(TimeSpan t)

            => Thread.Sleep(t);

    }


    [TestFixture()]

    public class Dummy2

    {

        static TestCaseData Case(int i)

            => new TestCaseData(TimeSpan.FromSeconds(2)).SetName($"Case {i}");


        public static IEnumerable<TestCaseData> Cases()

            => Enumerable.Range(1, 5).Select(Case);


        [TestCaseSource(nameof(Cases)), Parallelizable(ParallelScope.Children)]

        public void ItShouldSleep(TimeSpan t)

            => Thread.Sleep(t);

    }

}


查看完整回答
反对 回复 2021-11-21
?
www说

TA贡献1775条经验 获得超8个赞

我使用您的代码示例对其进行了调整,但问题是它打开了 5 个 Chrome 实例,但它仅适用于一个实例,而不是同时适用于其中的 5 个实例


   [TestCaseSource(nameof(Cases)), Parallelizable(ParallelScope.Children)]

        public void ItShouldSleep(TimeSpan t)

        {

            ChromeOptions options = new ChromeOptions();

            options.AddArguments("--disable-notifications");

            Driver = new ChromeDriver(@"C:\Users\slaouadi\source\repos\UnitTestProject1", options);

            string baseUrl = "https://www.google.com/";

            Driver.Navigate().GoToUrl(baseUrl);

            Driver.FindElement(By.Id("lst-ib")).SendKeys("IT WORKED FINE");


        }


查看完整回答
反对 回复 2021-11-21
  • 2 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信