2013-05-08 2 views
1

вот в чем проблема:Как запустить тест параллельно с использованием Selenium (LiveServerTestCase) в проекте django?

У меня есть класс, который унаследован от LiveServerTestCase. Этот класс имитирует работу некоторых пользователей (клиентов) - перейдите на сайт, заполнив некоторые поля, добавьте файлы. Мне нужно подражать работе нескольких пользователей, поэтому мне нужно запустить этот класс (функцию) параллельно.

Есть ли способ сделать это, просто используя стандартные вещи python, такие как потоки, процессы и Selenium-2? Если нет, напишите простой пример вашего предложения.

Спасибо!

+0

вы можете добавить на свой вопрос, что вы пытались и не работал. – fotanus

ответ

0

Лично я обычно различаю функциональные (системные) тесты django и тесты производительности/нагрузки/многопользовательских тестов на основе таких инструментов, как multi-mechanize или locust.

Вот что вы можете попробовать.

Nose может проводить ваши тесты в parallel (см. Также django_nose). Но, возможно, есть несколько проблем с этим:

  • , насколько каждый LiveServerTestCase открывает браузер на localhost:port, вы должны дать ему список портов, чтобы использовать для того, чтобы избежать This port is already in use ошибки:

    ./manage.py test --liveserver=localhost:8082,8090-8100,9000-9200,7041 
    
  • вероятно, создание и усечение таблицы базы данных вашей LiveServerTestCases заставит ваши тесты на провал (поведение может быть изменено, хотя)

Также см: