2015-09-04 59 views
0

我正在嘗試爲使用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.comwebserver1.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' 

任何幫助,不勝感激!

回答

0

有沒有辦法在WebDriver託管在另一臺機器上的情況下運行我的Selenium測試?

我覺得codeception不能做到這一點,硒服務器必須在主機上運行,​​我一直在使用Vagrant時之前同樣的問題,硒必須在你的主機,這樣運行codeception運行時,你會注意到一個彈出式窗口,例如Chrome或Firefox,我認爲......只要確保您的主機是基於GUI的,可以運行瀏覽器前綴。火狐

是否有使用webdriver的遠程計算機上,讓硒來看,還是做的webdriver和硒JAR必須在同一臺機器上的方法嗎?

您可以將基於GUI的服務器上運行您的硒服務器(JAR)。然後推動codeception命令成爲一個事件。


你應該先通過運行使用的webdriver /硒推,直到一個基於網絡監聽硒前PhpBrowser。

嘗試使用最新版本2.1,我確實有很多舊版本的問題,例如表單操作和以前用完Selenium。

+0

webdriver的是Codeception模塊進行對話的硒,內置的東西被稱爲PhpBrowser。 – Naktibalda

+0

呵呵,你說得對,我把WebDriver解釋爲PhpBrowser – daison12006013

相關問題