2008-09-18 11 views
14

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

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

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

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

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

ответ

0

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

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

Я в недоумении для любой вещи еще.

1

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

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

Ну, мы используем один и тот же набор для запуска тестов по различным комбинациям Linux и вариантам Windows, а также комбинированные, такие как сервер Windows с клиентом linux, windows xp, vista, затем контроллер домена, вне домена и скоро. Мы используем одни и те же двоичные файлы, а затем просто «агенты» запускаются в нескольких ящиках.

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

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

Кроме того, я написал статью, давно об этом на DDJ: http://www.ddj.com/architect/193104810

Надеется, что это помогает

5

Я работаю над этой самой вещью и обнаружил Gallio последние может управлять MBUnit тестов параллельно. Вы можете управлять ими с одного концентратора Selenium Grid, который может обслуживать несколько серверов удаленного управления.

Я использую latest nightly from 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().

+0

Спасибо за ваш ответ. На данный момент я отошел от этого проекта, но когда я вернусь к нему, я дам вам решение! – 2009-03-05 13:47:26