如何安裝 Laravel 自動化驗收測試環境?

   2016-10-31 0
核心提示:Laravel 在 5.1 之後,提供了 應用程式測試 ( Application Testing ),讓我們不用開啟瀏覽器,就可以直接對 route、controller 與 blade 進行驗收測試,且執行速度非常快,但也因為沒有開啟瀏覽器,所以無法對 JavaScript 與 AJAX 進行測試,若搭配了 Seleniu

Laravel 在 5.1 之後,提供了 應用程式測試 ( Application Testing ),讓我們不用開啟瀏覽器,就可以直接對 route、controller 與 blade 進行驗收測試,且執行速度非常快,但也因為沒有開啟瀏覽器,所以無法對 JavaScript 與 AJAX 進行測試,若搭配了 Selenium,配合我們熟悉的 PHPUnit,就能對驗收測試加以自動化。

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

如何安裝 Laravel 自動化驗收測試環境?

重建 vendor 目錄

oomusou@mac:~$ cd Laravel53SeleniumPHPUnit_seed
oomusou@mac:~/Laravel53SeleniumPHPUnit_seed$ composer install

如何安裝 Laravel 自動化驗收測試環境?

安裝 JDK

本次 workshop 所使用的 Selenium,是由 Java 所開發,必須先安裝 JDK

如何安裝 Laravel 自動化驗收測試環境?

選擇 Java SE Development Kit 8u102 ,根據平台下載不同的 JDK 版本。

如何安裝 Laravel 自動化驗收測試環境?

執行剛下載的 jdk-8u102-macosx-x64.dmg ,安裝 JDK 8 Update 102.pkg

如何安裝 Laravel 自動化驗收測試環境?

Continue 繼續。

如何安裝 Laravel 自動化驗收測試環境?

Install 開始安裝。

如何安裝 Laravel 自動化驗收測試環境?

安裝完成。

oomusou@mac:~/$ java -version

檢查所安裝的 Java 版本。

如何安裝 Laravel 自動化驗收測試環境?

若看到 1.8.0_102 ,則 JDK 安裝成功。

安裝 ChromeDriver

Selenium 預設只支援 Firefox,若要使用 Chrome,需另外安裝 ChromeDriver

如何安裝 Laravel 自動化驗收測試環境?

選擇目前最新版本下載。

如何安裝 Laravel 自動化驗收測試環境?

根據平台下載不同的 ChromeDriver 版本。

如何安裝 Laravel 自動化驗收測試環境?

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。

如何安裝 Laravel 自動化驗收測試環境?

將啟動在 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。

如何安裝 Laravel 自動化驗收測試環境?

若能看到 Selenium Server is up and running ,則 Selenium 已經正常啟動。

執行測試

oomusou@mac:~$ cd Laravel53SeleniumPHPUnit_seed
oomusou@mac:~/Laravel53SeleniumPHPUnit_seed$ vendor/bin/phpunit

原來的 Web Server 與 Selenium Server 必須保持啟動,再另外開一個 process 執行測試。

如何安裝 Laravel 自動化驗收測試環境?

若能看到 2 個測試都是 綠燈 ,表示整個 Selenium 測試環境已經設定完成。

Conclusion

  • 本教學以 macOS Sierra 為示範,其他作業系統也可以依照此方式安裝 JDK 、ChromeDriver 與下載 PhpStorm,至於命令列的指令,在各平台都一樣。
  • 若有任何安裝上的問題,請到 FB 的 PHPConf Workshop:自動化驗收測試 社團留言,我與助教們會幫大家解答。

Sample Code

完整的範例可以在我的 GitHub 上找到。

 
标签: Laravel Java
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • nginx 各类网站设置 (laravel , thinkphp , nod
    基础部分设置[root@centos ~]# vim /opt/nginx/conf/nginx.confuser www www;worker_processes auto;pid logs/nginx.pid;worker_rlimit_nofile 100000;events {use epoll;multi_accept on;worker_connections 65535 ;}http {include mime.types;default_type
    02-09
  • PHP trait 特性在 Laravel 中的使用个人心得
    trait 是在PHP5.4中为了方便代码复用的一种实现方式,但目前我在看的的PHP项目中较少看的有程序员去主动使用这个实现方式,在laravel中有很多 trait 的使用,关于trait 在 laravel 的使用请参看 Laravel 在哪些地方用了 trait?我曾在 Laravel 中大型项目面向
    02-09
  • 让我们用 laravel-mix 为 TypeScript 和 Sass
    介绍前端编译TypeScript、Sass、模板引擎等时经常用到Gulp和webpack。这是我个人的印象,但它们似乎都难以管理,因为它们的描述往往复杂而冗长。我不想积极进行,因为我要担心加载器的顺序并且有很多配置选项,我必须花时间去了解它们。我想推荐那里laravel
  • PHP Laravel软删除的实现方法介绍
    用Laravel 自带的 Eloquent ORM 来实现软删除。首先在数据迁移文件中添加删除时间字段./database/migrations/2014_10_12_000000_create_users_table.php?phpuse Illuminate\Database\Migrations\Migration;use Illuminate\Database\Schema\Blueprint;use Illu
  • Laravel中如何使用PHP的装饰器模式 php laravel
    本文小编为大家详细介绍“Laravel中如何使用PHP的装饰器模式”,内容详细,步骤清晰,细节处理妥当,希望这篇“Laravel中如何使用PHP的装饰器模式”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。装饰器模式定义:它可以帮助您在
    02-08 laravelphp
  • PHP laravel使用自定义邮件类实现发送邮件
    PHP laravel使用自定义邮件类实现发送邮件
    当登录邮箱为腾讯企业邮箱的时候。Phpmailer发送邮件就不好用了,具体哪里不好用,我没真没找到。但是,邮件得发啊,怎么办呢?我这里搞了一个自定义的发送邮件类,腾讯企业邮箱也可用。但是,邮件发送失败,不会返回报错信息,这个可能是有点坑。源码如下:?
  • 详解PHP laravel中的加密与解密函数
    目录一:简介二:配置三:使用加密/解密1:加密2:不使用序列化进行加密3:解密Laravel为我们提供了完整的加密方法及加密模式。我之前一般在加密的时候使用的是我自己写的加密函数,但是这个玩意,有的位置还是不太使用,当然,破解的话,基本上也是不可能的
  • PHP laravel缓存cache机制详解
    目录一、访问多个缓存存储二、从缓存中获取数据1.获取数据并设置默认值2.检查缓存项是否存在3.数值增加/减少4.获取存储5.获取删除三、缓存中存储数据1.获取存储数据2.缓存不存在时存储数据3.永久存储数据四、从缓存中移除数据Laravel中的cache为我们提供了三
  • PHP laravel实现导出PDF功能
    PHP laravel实现导出PDF功能
    目录一、laravel-tcpdf二、tcpdf三、TCPDF解决保存中文文件名的方法补充一、laravel-tcpdf导出PDF文件Laravel框架为我们集成了一个插件tcpdf。下载地址:https://github.com/elibyy/tcpdf-laravel然后使用composer进行安装就可以了。具体安装过程,请查看文末
  • PHP laravel缓存cache机制怎么实现
    今天小编给大家分享一下PHP laravel缓存cache机制怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Laravel中的cache为我们
点击排行