Тестирование нескольких одновременных сеансов браузера - PullRequest
6 голосов
/ 17 февраля 2010

Я разрабатываю карточную игру в Ruby on Rails и пытаюсь понять, как лучше всего ее протестировать.

Когда игрок присоединяется к игре, его объект Player сохраняется в сеансе. Очевидно, чтобы игра работала, мне нужно, чтобы в игре было больше одного игрока одновременно. Поскольку сессии для разных вкладок в одном браузере одинаковы, в настоящее время я тестирую игру для двух игроков, одновременно открывая приложение в FireFox и Internet Explorer.

Прежде чем я уйду и скачаю Chrome, чтобы протестировать третьего игрока ... Есть ли более простой способ сделать это?

Редактировать: Чтобы уточнить, я еще не на той стадии, на которой я хочу запускать автоматические тесты, чтобы посмотреть, не сломались ли они. Я нахожусь на этапе, когда я хочу иметь возможность взломать внутреннюю базу данных, затем обновить страницу и посмотреть, как она выглядит сейчас, или нажать кнопку, чтобы увидеть (обычно) реакцию на сбой, или выглядит ли поведение правый.

Ответы [ 4 ]

5 голосов
/ 17 февраля 2010

Вы можете запустить Firefox с несколькими профилями. Из командной строки перейдите в каталог, в котором установлен Firefox, и запустите firefox -P. Создайте профиль для каждого экземпляра, который вы хотите запустить. Закройте менеджер профилей, затем для каждого профиля запустите firefox -no-remote -P "profile name". Вы можете запустить столько экземпляров Firefox, сколько захотите, и каждый из них будет работать с независимым профилем и, следовательно, с независимой сессией.

1 голос
/ 17 февраля 2010

Используйте http://watir.com/ для создания сценариев ruby, которые будут выполнять вашу игру.

Используйте несколько экземпляров Watir::Browser для запуска нескольких браузеров.

Используйте профили Firefox и переключатель -no-remote для их разделения. Смотри также этот вопрос .

1 голос
/ 17 февраля 2010

Автоматизируй это!


Вы действительно не хотите проверять это вручную. Вы можете использовать скрипт Ruby с библиотеками curl для генерации «ходов» и управления ответом, включая cookie-файл сеанса.
Как тизер, посмотрите этот фрагмент из документации API, похоже, он вам поможет ...

easy.cookiejar = "cookiejar.file" => "pwd string"

Set a cookiejar file to use for this Curl::Easy instance. 
This file will be used to persist cookies. 
0 голосов
/ 17 февраля 2010

Вместо того, чтобы открывать новую вкладку, создайте новое окно в вашем веб-браузере. Новое окно будет иметь свой собственный сеанс. Это работает для Internet Explorer, но не для Firefox. Я не тестировал его в браузерах на основе WebKit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...