Кто-нибудь нашел способ параллельного запуска тестов C# Selenium RC?
Кто-нибудь нашел способ запуска тестов Selenium RC / Selenium Grid, написанных на C# параллельно?
В настоящее время у меня есть значительный набор тестов, написанный с использованием драйвера Selenium RC C#. Выполнение всего набора тестов занимает чуть более часа. Обычно мне не нужно запускать весь пакет, так что до сих пор это не было проблемой, но я бы хотел, чтобы это можно было выполнять более регулярно (т. Е. Как часть автоматической сборки).
Недавно я потратил некоторое время на изучение проекта Selenium Grid, цель которого по сути состоит в том, чтобы эти тесты работали параллельно. К сожалению, похоже, что плагин TestDriven.net, который я использую, запускает тесты поочередно (т.е. один за другим). Я предполагаю, что NUnit выполнит тесты подобным образом, хотя я на самом деле не проверял это.
Я заметил, что бета-версии NUnit 2.5 начинают говорить о запуске тестов параллельно с pNUnit, но я не достаточно ознакомился с проектом, чтобы точно знать, сработает ли это.
Другим вариантом, который я рассматриваю, является разделение моего набора тестов на разные библиотеки, что позволило бы мне запускать тест из каждой библиотеки одновременно, но я бы хотел избежать этого, если это возможно, так как я не уверен, что это веская причина для разделения тестовый набор.
3 ответа
Я работаю над этой самой вещью и обнаружил, что Gallio последний может параллельно проводить тесты mbUnit. Вы можете подключить их к одному концентратору Selenium Grid, который может прослушивать несколько серверов удаленного управления.
Я использую последнюю ночной выпуск от Gallio, чтобы получить 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()
,
Я написал PNUnit как расширение для NUnit почти три года назад, и я рад видеть, что он, наконец, был интегрирован в NUnit.
Мы ежедневно используем его для тестирования нашего программного обеспечения в различных дистрибутивах и комбинациях. Просто чтобы привести пример: у нас есть набор тяжелых тестов (длинных) с 210 тестами. Каждый из них устанавливает сервер и запускает клиент в командной строке, выполняя несколько операций (до 210 сценариев).
Что ж, мы используем один и тот же набор для запуска тестов на различных комбинациях Linux и версиях Windows, а также комбинированных тестах, таких как сервер Windows с клиентом Linux, Windows XP, Vista, затем контроллер домена, вне домена и так далее. Мы используем одни и те же двоичные файлы, а затем просто запускаем "агенты" в нескольких блоках.
Мы используем одну и ту же платформу для: балансировки нагрузки тестовой нагрузки -> я имею в виду, быстрее работать в блоках. Запуск нескольких комбинаций одновременно, и, что я считаю, более интересным: определение сценариев с несколькими клиентами: два клиента ждут запуска сервера, затем запускают операции, синхронизируются друг с другом и так далее. Мы также используем PNUnit для нагрузочного тестирования (сотни ящиков на одном сервере).
Итак, если у вас есть какие-либо вопросы о том, как его настроить (что, боюсь, пока не так просто), не стесняйтесь спрашивать.
Также я написал статью об этом в DDJ: http://www.ddj.com/architect/193104810
Надеюсь, поможет
Я не знаю, если ответ не считается ответом, но я бы сказал, что вы все исследовали, и вы действительно нашли 2 возможных решения...
- Test Suite выполняет тесты параллельно
- Разделите набор тестов
Я в растерянности из-за чего-то еще.