我正在嘗試爲使用Codeception 1.8和Selenh的somehwat-legacy PHP和JavaScript應用程序設置新的測試結構。如果有人不知道Codeception(http://codeception.com/),它有幾個選項可用於運行包含內置PHP瀏覽器的測試,但基本上是PHPUnit的增強版本。它具有用於運行單元,功能和驗收測試的套件。使用Selenium JAR和WebDriver在獨立機器上運行代碼測試
我按照「快速入門」(http://codeception.com/quickstart)中的說明操作,並且歡呼雀躍,PHP瀏覽器成功運行了一個超級簡單的驗收測試。我遇到的問題是當我嘗試更改配置如何運行這些測試的YAML文件時 - 我想停止使用PHPBrowser,並切換到Selenium,以便可以編寫涉及DOM和JS的端到端樣式測試。
起初,我有讓chromedriver工作的問題 - 我從來沒有這樣做,實際上,我無法升級我的Codeception版本,因爲我正在使用的代碼庫很難在PHP版本5.3.29中設置。但是,我發現這裏有一臺單獨的服務器安裝了PhantomJS。
這很重要,因爲我無法在運行selenium JAR(fileserver 1)的機器上安裝sudo install,也沒有安裝PhantomJS(webserver 1)的機器。所以我無法自己安裝firefox驅動程序或其他webdriver。
我的問題是:有沒有辦法在WebDriver託管在另一臺機器上的情況下運行我的Selenium測試?有沒有辦法在遠程機器上使用WebDriver來讓Selenium運行,或者WebDriver和Selenium JAR必須位於同一臺機器上?
作爲另一個附加說明,兩臺服務器都在同一主域 - 它們分別是fileserver1.domain.com
和webserver1.domain.com
(顯然都是假的URL)。
這裏是我的YAML配置文件爲我codeception設置:
codeception主要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
驗收測試YAML
# 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'
任何幫助,不勝感激!
webdriver的是Codeception模塊進行對話的硒,內置的東西被稱爲PhpBrowser。 – Naktibalda
呵呵,你說得對,我把WebDriver解釋爲PhpBrowser – daison12006013