2014-01-07 2 views
1

Я пытаюсь очистить процесс тестирования нашего UI Automation.Ui Автоматизация тестирования, управляемая службой Windows

Прямо сейчас у нас есть консольное приложение, которое выполняется на сервере, который прослушивает вызовы RPC с использованием Apache Thrift, в зависимости от запуска запуска этого приложения либо запускает Selenium с указанным пользователем браузером (Chrome, IE, Firefox), или он запустит наше настольное приложение WPF.

Моя цель состоит в том, чтобы это консольное приложение будет запускаться как служба окон для пары курсовую:

  1. Пользователь больше не нужно быть зарегистрированным на сервере.
  2. Третье приложение больше не требуется для предотвращения активации экранной заставки.
  3. позволит эффективно тесты, которые будут работать на ферме, так что множественная может работать параллельно

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

Если это невозможно, то как насчет программного входа в сервер?

+0

Боковое примечание: программы пользовательского интерфейса (браузеры, обычные WPF/WinForms) могут вести себя странно в безголовых сеансах ... Обязательно попробуйте, если все, что вы хотите протестировать, работает в контексте службы. –

+0

@AlexeiLevenkov С учетом вашего комментария, он должен иметь возможность запускать приложения без гарнитуры без специального кода? Я планирую обеспечить, чтобы наши тесты выполнялись, как ожидалось, конечно. – Phaeze

+0

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

ответ

2

Единственный способ, которым вы можете это сделать, - использовать PhantomJS (или другой браузер без браузера). У служб Windows нет доступа к работающим браузерам на рабочем столе (хотя они использовались для работы в Windows XP и Windows 2000 Server). С тех пор Microsoft заблокировала эти разрешения, даже если вы видите флажок «взаимодействовать с рабочим столом» на службе, я не думаю, что это сработает.

Кроме того, серверы селеновых сетей должны запускаться на переднем плане на удаленном сервере (по тем же причинам). Единственное исключение - использование PhantomJS в Grid, ваши сетевые серверы могут запускаться как служба для запуска браузеров без браузера. Разумеется, запуск Grid-узла в качестве сервисного и сетевого концентратора в качестве сервиса не является тривиальной задачей для настройки (используя YAJSW), но ее выполнимость. Ваше перемещение может измениться, если вы идете по этому маршруту, поскольку я на самом деле не пробовал его. Идея состоит в том, что вы можете писать сценарии пакетного DOS для запуска/регистрации YAJSW для запуска сетки в качестве службы.

+0

Спасибо, это то, что я нахожу, похоже, что он частично работает, но на конкретном веб-сайте появилась проверка подлинности Windows. Время найти другой способ сделать это. – Phaeze

+0

Я снова обновил свой ответ. – djangofan

Смежные вопросы