Кто-нибудь нашел способ запустить тесты C# Selenium RC параллельно?

Кто-нибудь нашел способ запустить тесты Selenium RC / Selenium Grid, написанные на C# параллельно?

В настоящее время у меня есть значительный набор тестов, написанный с использованием драйвера C# Selenium RC. Выполнение всего набора тестов занимает чуть больше часа. Обычно мне не нужно запускать весь пакет, поэтому до сих пор это не было проблемой, но я хотел бы иметь возможность делать это более регулярно (то есть как часть автоматизированной сборки)

Недавно я потратил некоторое время на изучение проекта Selenium Grid, цель которого, по сути, состоит в том, чтобы позволить этим тестам выполняться параллельно. К сожалению, похоже, что плагин TestDriven.net, который я использую, запускает тесты последовательно (то есть один за другим). Я предполагаю, что NUnit будет выполнять тесты аналогичным образом, хотя я на самом деле не проверял это.

Я заметил, что бета-версии NUnit 2.5 начинают говорить о запуске тестов параллельно с pNUnit, но я еще недостаточно ознакомился с проектом, чтобы точно знать, сработает ли это.

Другой вариант, который я рассматриваю, - это разделение моего набора тестов на разные библиотеки, что позволило бы мне запускать тест из каждой библиотеки одновременно, но я бы хотел избежать этого, если это возможно, поскольку я не уверен, что это веская причина для разделения. набор тестов.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
14
0
5 461
3

Ответы 3

Я не знаю, считается ли ни один ответ ответом, но я бы сказал, что вы все исследовали и действительно придумали 2 возможных решения ...

  • Test Suite запускает тесты параллельно
  • Разделите набор тестов на части

Я ничего не понимаю в другом.

Я написал PNUnit как расширение для NUnit почти три года назад, и я рад видеть, что он наконец был интегрирован в NUnit.

Мы используем его ежедневно для тестирования нашего программного обеспечения в различных дистрибутивах и комбинациях. Приведу пример: у нас есть набор тяжелых тестов (длинных), состоящий примерно из 210 тестов. Каждый из них настраивает сервер и запускает клиент в командной строке, выполняя несколько операций (до 210 сценариев).

Что ж, мы используем один и тот же набор для запуска тестов в различных комбинациях Linux и вариантах Windows, а также комбинированных, таких как сервер Windows с клиентом Linux, Windows XP, Vista, затем контроллер домена, вне домена и так далее. Мы используем одни и те же двоичные файлы, а затем просто запускаем «агентов» на нескольких ящиках.

Мы используем ту же платформу для: балансировки нагрузки, тестовой нагрузки -> я имею в виду, более быстрой работы по частям. Выполнение нескольких комбинаций одновременно, и то, что я считаю более интересным: определение сценариев с несколькими клиентами: два клиента ждут запуска сервера, затем запускают операции, синхронизируются друг с другом и так далее. Также мы используем PNUnit для нагрузочного тестирования (сотни ящиков против одного сервера).

Так что, если у вас есть какие-либо вопросы о том, как его настроить (что, боюсь, пока непросто), не стесняйтесь спрашивать.

Также я давно написал об этом статью в DDJ: http://www.ddj.com/architect/193104810

Надеюсь, это поможет

Я работаю именно над этим и обнаружил, что последняя версия Галлио может параллельно проводить тесты mbUnit. Вы можете направить их к одному концентратору Селеновая сетка, который может прослушивать несколько серверов удаленного управления.

Я использую последний вечер от Галлио, чтобы получить ParallelizableAttribute и Атрибут DegreeOfParallelismAttribute.

Я заметил кое-что: я не могу полагаться на TestSet и TestTeardown, чтобы изолировать параллельные тесты. Вам понадобится тест, чтобы он выглядел примерно так:

[Test] public void Foo(){
  var s = new DefaultSelenium("http://grid", 4444, "*firefox",
                              "http://server-under-test");
  s.Start();
  s.Open("mypage.aspx");
  // Continue
  s.Stop();

}

Использование атрибута [SetUp] для запуска сеанса Selenium приводило к тому, что тесты не получали удаленный сеанс от s.Start().

Спасибо за ваш ответ. На данный момент я отказался от этого проекта, но когда вернусь к нему, я попробую ваше решение!

Peter Bernier 05.03.2009 16:47

Другие вопросы по теме