Selenium Grid с параллельным тестированием с использованием C # / NUnit - PullRequest
5 голосов
/ 18 ноября 2009

У меня есть несколько модульных тестов, написанных с NUnit, которые вызывают команды селена. У меня есть 2 сервера win2k3, один из которых работает с сетевым концентратором selenium вместе с 2 RC-серверами selenium. Другая коробка работает 5 селен RC. Все они зарегистрированы в хабе как работающие с Firefox в Windows (для простоты). В моем методе настройки модульного теста я подключил его к имени хоста концентратора через порт 4444.

При выполнении тестов они запускаются только последовательно (как и ожидалось). Я много читал о дорожной карте NUnit и о том, как они стремятся к параллельным способностям тестирования. В то же время я видел много указаний на использование PNUnit. Однако это, кажется, полностью разрушает цель Решетки Селена.

Кто-нибудь из вас успешно реализовал параллельное тестирование с использованием C # / NUnit, подключенного к установке Selenium Grid? Если да, пожалуйста, уточните.

Я в полной растерянности из-за того, как это будет / может работать с использованием NUnit, как оно существует сейчас (я использую версию 2.9.3)

Ответы [ 5 ]

4 голосов
/ 23 декабря 2009

К сожалению, NUnit не может запускать тесты параллельно, поэтому вам нужно использовать другого бегуна для архивирования всех преимуществ параллельного тестирования с Selenium Grid.

Я использую Gallio Runner для своих тестов на C # и примеры здесь:

проект на c # с параллельными тестами: http://code.google.com/p/design-of-selenium-tests-for-asp-net/

описание: http://slmoloch.blogspot.com/2009/12/design-of-selenium-tests-for-aspnet_19.html

Тестер Gallio: http://www.gallio.org/

1 голос
/ 23 сентября 2014

NCrunch (http://www.ncrunch.net/) заслуживает внимания - он имеет возможность распределенной обработки как часть сборки, и одной из его основных функций является параллельное тестирование.

1 голос
/ 24 апреля 2010

Есть также PNUnit , на который стоит обратить внимание, я еще не пробовал его для параллельного тестирования.

0 голосов
/ 09 августа 2018

Gallio сегодня устарел, поэтому вы можете использовать решение NUnit.

Начиная с версии 3.7 NUnit позволяет выполнять тестирование параллельно. До этого было возможно сделать это на уровне прибора, но в 3.7+ вы можете даже для тестов в одном TestFixute. См. Мой пример ниже, чтобы продемонстрировать, как этого можно достичь.

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);
    }
}
0 голосов
/ 01 сентября 2014

Используя Selenium Grid в сочетании с библиотекой Parallels для задачи .NET и классом DynamicObject, вы можете запускать один и тот же тест на нескольких узлах Selenium Grid (нескольких браузерах) одновременно.

http://blog.dmbcllc.com/running-selenium-in-parallel-with-any-net-unit-testing-tool/

...