Я пытаюсь настроить новую структуру тестирования для унаследованного PHP-и JavaScript-приложения с использованием Codeception 1.8 и Selenium. В случае, если кто-то не знает Codeception (http://codeception.com/), у него есть несколько опций для запуска тестов, которые включают встроенный браузер PHP, но в основном это расширенная версия PHPUnit. Имеются комплекты для проведения юнит-контроля, функциональных и приемочных испытаний.
Я следовал инструкциям в разделе «Быстрый старт» (http://codeception.com/quickstart) и ура, PHP Browser успешно выполнил очень простой приемочный тест. У меня возникает проблема, когда я пытаюсь изменить файл YAML, в котором настроено выполнение этих тестов — я хочу прекратить использовать PHPBrowser и переключиться на Selenium, чтобы можно было писать тесты стиля end-to-end с участием DOM и JS.
Сначала у меня были проблемы с запуском chromedriver — на самом деле я никогда этого не делал, и я не могу обновить версию Codeception, потому что база кода, с которой я работаю, жестко установлена в версии PHP: 5.3.29. Однако я обнаружил, что на отдельном сервере установлен PhantomJS.
Это важно, потому что у меня нет доступа к установке sudo ни на компьютере, на котором я запускаю JAR Селена (файловый сервер 1), ни на компьютере с установленным PhantomJS (веб-сервер 1). Поэтому я не могу установить драйвер Firefox или другой веб-драйвер самостоятельно.
Мой вопрос: есть ли способ запустить мои тесты Selenium с помощью WebDriver, пока он находится на другом компьютере? Есть ли способ использовать WebDriver на удаленном компьютере, чтобы запустить Selenium, или WebDriver и Selenium JAR должны быть на одном компьютере?
Как еще одно дополнительное примечание, оба сервера находятся в одном и том же основном домене — они fileserver1.domain.com
а также webserver1.domain.com
(оба поддельных URL, очевидно).
Вот мои файлы конфигурации YAML для моей настройки кодового восприятия:
основная кодировка YAML
paths:
tests: tests
log: tests/_log
data: tests/_data
helpers: tests/_helpers
settings:
bootstrap: _bootstrap.php
suite_class: \PHPUnit_Framework_TestSuite
colors: true
memory_limit: 1024M
log: true
modules:
config:
Db:
dsn: ''
user: ''
password: ''
dump: tests/_data/dump.sql
приемочные испытания ЯМЛ
# Codeception Test Suite Configuration
class_name: WebGuy
modules:
enabled:
# - PhpBrowser
# - Selenium2
- WebDriver
- WebHelper
config:
WebDriver:
url: 'https://.../login_logout.php?superuser'
browser: chrome
window_size: 1024x768
# PhpBrowser:
# url: 'https://.../login_logout.php?superuser'
Любая помощь очень ценится!
Вы пробовали установить параметры хоста и порта?
https://github.com/Codeception/Codeception/blob/1.8/docs/modules/WebDriver.md
host - Selenium server host (127.0.0.1 by default)
port - Selenium server port (4444 by default)
Есть ли способ запустить мои тесты Selenium с помощью WebDriver, пока он находится на другом компьютере?
Я думаю, что Codeception не может этого сделать, сервер Selenium должен быть запущен на ваших хостах, у меня та же проблема раньше при использовании Vagrant
Селен должен быть запущен на ваших хостах, чтобы при запуске кодов вы заметили всплывающее окно, такое как Chrome или Firefox. Я думаю … Просто убедитесь, что ваши хосты основаны на графическом интерфейсе, который может запускать браузеры. , Fire Fox
Есть ли способ использовать WebDriver на удаленном компьютере, чтобы запустить Selenium, или WebDriver и Selenium JAR должны быть на одном компьютере?
Вы можете запустить свой сервер селена (jar) на сервере с графическим интерфейсом. Затем нажмите команду codeception, чтобы стать событием.
Вы должны сначала запустить PhpBrowser, прежде чем проталкивать с помощью WebDriver / Selenium и до тех пор, пока не появится сетевой слушатель селена.
Попробуйте использовать последнюю версию 2.1, у меня действительно много проблем со старыми версиями, такими как манипуляции с формами, а также запуск Selenium раньше.