Laravel 在 5.1 之後,提供了 應用程式測試 ( Application Testing ),讓我們不用開啟瀏覽器,就可以直接對 route、controller 與 blade 進行驗收測試,且執行速度非常快,但也因為沒有開啟瀏覽器,所以無法對
Motivation
由於安裝環境需要不少時間,而 PHPConf 的 workshop 時間只有 110 分鐘,為了讓大家在現場能有更充分的時間學習 PhpStorm 與實際練寫測試,因此特別將耗時的環境安裝改為事前準備。
Version
macOS Sierra 10.12
Java 1.8.0_102
PHP 7.0.8
Laravel 5.3.18
PhpStorm 2016.2.2
PHPUnit 5.5.5
phpunit-selenium 3.0.2
Selenium Standalone Server 2.53.1
ChromeDriver 2.24
Chrome 53.0.2785.143 (64-bit)
安裝 PHP 7
請先準備好 PHP 7 環境,本次 workshop 範例無法在 PHP 5.6 執行。
安裝 Composer
請先準備好 Composer。
下載範例
本次 workshop 的範例放在 GitHub ,請先下載。
oomusou@mac:~$ git clone https://github.com/oomusou/Laravel53SeleniumPHPUnit_seed
重建 vendor 目錄
oomusou@mac:~$ cd Laravel53SeleniumPHPUnit_seed oomusou@mac:~/Laravel53SeleniumPHPUnit_seed$ composer install
安裝 JDK
本次 workshop 所使用的 Selenium,是由 Java 所開發,必須先安裝 JDK 。
選擇 Java SE Development Kit 8u102
,根據平台下載不同的 JDK 版本。
執行剛下載的 jdk-8u102-macosx-x64.dmg
,安裝 JDK 8 Update 102.pkg
。
按 Continue
繼續。
按 Install
開始安裝。
安裝完成。
oomusou@mac:~/$ java -version
檢查所安裝的 Java 版本。
若看到 1.8.0_102
,則 JDK 安裝成功。
安裝 ChromeDriver
Selenium 預設只支援 Firefox,若要使用 Chrome,需另外安裝 ChromeDriver 。
選擇目前最新版本下載。
根據平台下載不同的 ChromeDriver 版本。
將 zip
解開後,將 chromedriver
複製到 Laravel53SeleniumPHPUnit_seed
專案的根目錄下。
安裝 PhpStorm
本次 workshop 會使用 PhpStorm 完成自動化測試,請先下載 PhpStorm 安裝檔,安裝只要下一步下一步即可,當場會教大家設定 PhpStorm。
測試 Workshop 環境
最後要測試整個 Selenium 測試環境是否能正常啟動。
啟動 PHP Web Server
oomusou@mac:~$ cd Laravel53SeleniumPHPUnit_seed oomusou@mac:~/Laravel53SeleniumPHPUnit_seed$ php artisan serve
啟動 PHP 內建的 Web Server。
將啟動在 http://localhost:8000
。
啟動 Selenium
oomusou@mac:~$ cd Laravel53SeleniumPHPUnit_seed oomusou@mac:~/Laravel53SeleniumPHPUnit_seed$ java -jar selenium-server-standalone-2.53.1.jar
原來的 Web Server 必須保持啟動,另外開一個 process 啟動 Selenium Server。
若能看到 Selenium Server is up and running
,則 Selenium 已經正常啟動。
執行測試
oomusou@mac:~$ cd Laravel53SeleniumPHPUnit_seed oomusou@mac:~/Laravel53SeleniumPHPUnit_seed$ vendor/bin/phpunit
原來的 Web Server 與 Selenium Server 必須保持啟動,再另外開一個 process 執行測試。
若能看到 2 個測試都是 綠燈 ,表示整個 Selenium 測試環境已經設定完成。
Conclusion
- 本教學以 macOS Sierra 為示範,其他作業系統也可以依照此方式安裝 JDK 、ChromeDriver 與下載 PhpStorm,至於命令列的指令,在各平台都一樣。
- 若有任何安裝上的問題,請到 FB 的 PHPConf Workshop:自動化驗收測試 社團留言,我與助教們會幫大家解答。
Sample Code
完整的範例可以在我的 GitHub 上找到。