自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

值得推薦的十種PHP測試框架

譯文
開發(fā) 前端
本文將和您一起探討十種優(yōu)秀PHP測試框架是如何實現(xiàn)測試自動化,以及它們各自的優(yōu)缺點(diǎn)。

[[388760]]

【51CTO.com快譯】作為一種可以支持測試和開發(fā)活動的工具與過程的集合,框架往往包含了各種實用的程序庫、可重用的模塊、測試數(shù)據(jù)的設(shè)置、以及其他依賴項。目前,無論是針對Web的開發(fā)、還是測試,業(yè)界都有多種成熟框架,可供您根據(jù)實際需求進(jìn)行選擇,進(jìn)而提高團(tuán)隊的效率和生產(chǎn)力。而作為一個優(yōu)秀的框架,它通常需要具備如下優(yōu)點(diǎn):

  • 維護(hù)具備良好定義的代碼結(jié)構(gòu)。
  • 提供能有效用于測試的可重用模塊和庫。
  • 可加快測試的進(jìn)程與效率。
  • 可避免代碼的重復(fù)。
  • 能夠分析需求與測試的范圍。

同時,在所有服務(wù)器端的編程語言中,有80%的網(wǎng)站用到了PHP。因此,我們有必要對針對PHP測試框架開展深入研究,以方便采用標(biāo)準(zhǔn)的格式,編寫出各種測試用例。下面,我將和您一起探討十種優(yōu)秀PHP測試框架是如何實現(xiàn)測試自動化,以及它們各自的優(yōu)缺點(diǎn)。

1. PHPUnit

作為一種面向程序員的最常用PHP測試框架,PHPUnit非常適合單元測試。它是由Sebastian Bergmann開發(fā)的,屬于xUnit框架體系結(jié)構(gòu)中的一個實例。

安裝步驟

您需要事先安裝PHP 7.3版或更高版本,才能安裝PHPUnit的最新版本--PHPUnit 9.3。以下便是PHPUnit的安裝步驟。

  • 步驟1:從鏈接https://www.php.net/phar處下載PHAR(PHP Archive)。PHAR已將所有必需的PHPUnit依賴項,都捆綁在了一個文件中。
  • 步驟2:從鏈接https://getcomposer.org/處,安裝Composer,以管理項目中的所有依賴項。

使用PHPUnit框架的優(yōu)勢

作為公認(rèn)好用的PHP框架之一,PHPUnit在進(jìn)行自動化測試過程中具有如下優(yōu)勢:

1. 可以有效地分析代碼的覆蓋率。通過深入分析,它可以生成包含有各種代碼覆蓋率信息的報告,或HTML/XML日志文件。在碰到無法測試的代碼塊時,我們可以使用諸如@codeCoverageIgnore、@codeCoverageIgnoreStart和@codeCoverageIgnoreEnd之類的注釋,在執(zhí)行代碼覆蓋率分析過程中,忽略某些代碼塊。當(dāng)然,我們也可以通過使用@covers注釋,來指定某個代碼塊去執(zhí)行代碼覆蓋率分析。

2. 在執(zhí)行測試用例時,某些測試可能無法被執(zhí)行到。對此,PHPUnit提供了一個可觸發(fā)異常的接口。

3. 如下面的簡單XML配置文件所示,我們可以將所有測試組合到一個套件中,并在XML配置文件的協(xié)助下觸發(fā)運(yùn)行。

2. Codeception

由于具有易于使用和維護(hù)代碼模塊的能力,因此Codeception的使用范圍非常廣。它提供了多個模塊,可以在單個框架中支持驗收測試、功能測試、以及單元測試。

安裝步驟

安裝Codeception的先決條件為:

  • 安裝了PHP 5.6或更新版本。
  • 已啟用了CURL。

Codeception的具體安裝步驟為:

  • 步驟1:從官網(wǎng)—https://getcomposer.org/download/處,下載并安裝用于管理PHP中各個依賴項的composer。它將有助于聲明要在項目中使用到的代碼庫,并對其進(jìn)行管理。
  • 步驟2:從Codeception的官網(wǎng)—https://codeception.com/install處,下載并安裝PHAR。

使用Codeception框架的優(yōu)勢

1. 作為“全棧測試框架”,您可以對目標(biāo)應(yīng)用進(jìn)行單元測試、功能測試、以及驗收測試。

2. 通過使用簡單的命名規(guī)則,它能夠協(xié)助用戶理解代碼。其中,actions關(guān)鍵字可用于執(zhí)行諸如:單擊、按鍵、填充輸入字段等用戶操作;assertion關(guān)鍵字可用于執(zhí)行驗證,就像使用TestNG和Junit進(jìn)行驗證一樣;而grabbers則可用于提取相關(guān)信息。

3. 提供了一種可在JBehave和Cucumber等行為驅(qū)動開發(fā)(BDD)中,運(yùn)行用戶故事(user stories)的選項。

4. 提供了各種對于數(shù)據(jù)庫測試非常實用的數(shù)據(jù)庫模塊。

5. 具有WebDriver模塊,可用于驗收測試。

6. 具有對于Web服務(wù)測試非常實用的REST模塊。為了驗證JSON響應(yīng),該模塊可從特定的JSON標(biāo)簽中提取數(shù)據(jù),并驗證各種XML響應(yīng)。

7. 有助于與Jenkins和Teamcity等持續(xù)集成工具相集成,以協(xié)助生成測試報告。

3. Storyplayer

作為一個開源的PHP測試框架,Storyplayer可用于執(zhí)行端到端測試、API自動化測試、以及Web應(yīng)用測試。由于它提供了對于多種編程語言的支持,因此可謂優(yōu)秀PHP框架之一。

安裝步驟

  • 步驟1:目前,它僅支持Apple OSX Yosemite和Ubuntu Linux Desktop 14.10,而且需要事先安裝PHP。
  • 步驟2:根據(jù)其官網(wǎng)要求(https://datasift.github.io/storyplayer/v2/learn/getting-setup/index.html),需要額外添加諸如CURL、JSON、OpenSSL等擴(kuò)展。

使用Storyplayer框架的優(yōu)點(diǎn)

1. 提供了無需訂閱或付費(fèi)的開源框架服務(wù),這對于PHP的Web開發(fā)新手來說,非常實用。

2. 支持多種編程語言,讓PHP的開發(fā)和測試更加容易。

4. SeleniumHQ

作為已被廣泛使用的Web應(yīng)用自動化測試框架,Selenium包含四個主要組成部分:

  • Selenium IDE
  • Selenium RC
  • Selenium WebDriver
  • Selenium Grid

由于這些組件是為特定目的設(shè)計的,因此您可以根據(jù)實際測試需求進(jìn)行選擇。

安裝步驟

除了具有最新版本的PHP,您還需要安裝Composer,以管理項目的所有依賴項。

使用Selenium框架的優(yōu)勢

1. 屬于開源的自動化測試框架。

2. 具有雄厚的支持社區(qū)。

3. 易于安裝,且易于實現(xiàn)對用例的測試。

4. 可以在諸如Google Chrome、Firefox、Safari、Internet Explorer等不同的瀏覽器中運(yùn)行測試用例,并能夠無縫地測試瀏覽器的兼容性。

5. 可在多個瀏覽器和操作系統(tǒng)中,并行且快速地執(zhí)行測試腳本。

6. 可用于執(zhí)行與瀏覽器對應(yīng)的鍵盤和鼠標(biāo)之間的交互。

5. Behat

作為一種PHP行為驅(qū)動開發(fā)(BDD)框架,Behat專為PHP而構(gòu)建,并包含了許多核心的PHP模塊。由于其代碼是用簡單的英語編寫而成,因此它能夠被項目的各個成員快速地理解。我們通常將BDD結(jié)構(gòu)里包含的上下文、操作和結(jié)果,統(tǒng)稱為Gherkin。以下便是使用Gherkin語言編寫的簡單測試示例:

這些案例可以被寫入具有可擴(kuò)展功能的文件中(如loginTest.feature)。Behat可以從命令行來運(yùn)行測試,就像通過各種功能性的文件,來測試應(yīng)用程序一樣。

安裝步驟

  • 步驟1:安裝PHP的最新版本。
  • 步驟2:安裝Composer,以管理項目的所有PHP依賴關(guān)系。
  • 步驟3:如果沒有Composer,則可以通過下載最新版本的behat.phar(https://github.com/Behat/Behat/releases)來設(shè)置框架。

使用Behat框架的優(yōu)點(diǎn)

1. 屬于一種開源的測試框架。

2. 易于安裝和實施。

3. 由于全部是由BDD和簡單英語(包含Given、When和Then關(guān)鍵字的Gherkin語言)編寫,因此項目成員易于理解需求和測試用例之間的映射關(guān)系。各種場景可被寫入功能性文件中,并由上下文、后續(xù)操作和最終預(yù)期結(jié)果所組成。

4. 其詳細(xì)的文檔可幫助用戶輕松地實現(xiàn)該框架。

6. Atoum

作為一款較新的PHP測試框架,Atoum不但簡單,而且易于實現(xiàn)單元測試。由于提供了諸如內(nèi)聯(lián)引擎、隔離引擎、以及并發(fā)引擎等各種內(nèi)置的執(zhí)行引擎,因此Atoum可以在不同的流程中,并行運(yùn)行各種測試用例。此外,Atoum通過提供模擬構(gòu)建的高級功能,來最大程度地減少測試運(yùn)行中的依賴性。

安裝步驟

在安裝與設(shè)置Atoum框架之前,請確保您的系統(tǒng)中已安裝了最新版本的PHP。

  • 步驟1:從其官方網(wǎng)站--https://getcomposer.org/處下載并安裝Composer。
  • 步驟2:通過鏈接--https://atoum.readthedocs.io/en/latest/installation.html#phar-archive下載并安裝PHAR文件。
  • 步驟3:從Git存儲庫http://github.com/atoum/atoum.git處進(jìn)行克隆。

使用Atoum框架的優(yōu)勢

1. 易于編寫測試用例。

2. 提供了多個易于有效實現(xiàn)測試用例的斷言(assertions)。

3. 通過快速完成模擬測試,可以減少解析依賴關(guān)系時的等待時間,進(jìn)而提高測試的執(zhí)行效率。

4. 可生成不同格式的測試報告。

5. 可與Jenkins、Travis CI、CircleCI等持續(xù)集成工具相整合。

6. 可通過添加如下插件,讓測試框架更加穩(wěn)定。

a. json-schema-extension — 用于驗證JSON標(biāo)簽。

b. bdd-extension — 用于編寫具有更好可讀性的BDD樣式測試用例。

c. reports-extension - 用于編寫代碼覆蓋率的報告。

7. SimpleTest

作為一款PHP測試框架,SimpleTest可用于單元測試、Web測試、以及PHP Web開發(fā)的模擬對象。該框架通過內(nèi)置的Web瀏覽器,以方便用戶導(dǎo)航到不同的網(wǎng)頁上,并開展測試。

安裝步驟

  • 步驟1:在系統(tǒng)中安裝最新版本的PHP。
  • 步驟2:從其官網(wǎng)http://simpletest.sourceforge.net/處下載并設(shè)置該框架。

使用SimpleTest框架的優(yōu)勢

1. 對于單元測試非常實用。

2. 為表單、SSL、框架、代理、以及基本身份驗證,提供了廣泛的支持。

3. 具有內(nèi)置的Web瀏覽器,可協(xié)助測試Web應(yīng)用。

4. 可通過瀏覽器,以及命令行來執(zhí)行測試。

5. 可與PHPUnit一起使用。

6. 具有高度的靈活性,并能夠自定義輸出結(jié)果。

8. phpspec

作為另一種行為驅(qū)動開發(fā)(BDD)框架,phpspec可用于編寫和執(zhí)行由PHP編寫的測試。它能夠根據(jù)開發(fā)人員提供的規(guī)范,來驅(qū)動設(shè)計。

安裝步驟

  • 步驟1:在系統(tǒng)中安裝PHP 5.6或7。
  • 步驟2:根據(jù)鏈接--http://www.phpspec.net/en/stable/,正確地設(shè)置Composer,以自動管理所有項目的依賴項,否則phpspec將無法檢測到各種類。
  • 步驟3:使用命令“composer require –dev Phpspec/Phpspec”,來安裝phpspec。之后,您會注意到所有依賴項都已被成功安裝在vendor文件夾中。對應(yīng)的可執(zhí)行文件也在vendor/bin/phpspec中。

使用phpspec框架的優(yōu)勢

  • 能夠自動為類和方法生成框架。
  • 具有一個模擬框架。
  • 提供了14個內(nèi)置的匹配器,其中包括常見的比較匹配器、近似匹配器、類型匹配器、以及標(biāo)識匹配器等。它們可以驗證和描述測試的結(jié)果。
  • 可以通過配置諸如DataProvider插件、框架集成插件、代碼生成插件、以及Matchers插件等,來擴(kuò)展該框架。

9. Peridot

Peridot常被開發(fā)人員譽(yù)為可使用BDD方法的優(yōu)秀PHP框架之一。在Peridot中用describe-it語法編寫出的測試代碼(見如下代碼段),不但易于閱讀和理解,而且便于維護(hù)。由于能夠快速地加載,且能并行地運(yùn)行測試套件,因此它被認(rèn)為是PHP框架中最快的一款。

安裝步驟

  • 步驟1:使用Composer來輕松安裝該框架,并管理項目中的依賴項。
  • 步驟2:可通過鏈接--https://peridot-php.github.io/#getting-started,來下載并手動安裝PHAR。

使用Peridot框架的優(yōu)勢

1. 可使用熟悉的describe-it語法,來創(chuàng)建清晰易讀的測試語言。

2. 為了實現(xiàn)擴(kuò)展,可使用各種類型的插件來自定義測試框架。

3. 可通過與WebDriver和數(shù)據(jù)庫相集成,來執(zhí)行測試。

4. 與上述Phpspec和PHPUnit之類的PHP框架相比,Peridot屬于輕量級和快速型。

5. 可協(xié)助執(zhí)行高速集成測試。

6. 提供針對不同特定目的而專門設(shè)計的報告器,如:Peridot List報告器、并發(fā)報告器、以及代碼覆蓋率報告器等。

10. Kahlan

作為一種單元式和行為驅(qū)動的PHP框架,Kahlan使用了類似于Peridot的describe-it語法。無需任何PHP擴(kuò)展,我們即可將該開源框架作為補(bǔ)丁植入(stub)代碼。

Kahlan同樣使用describe-it語法,來簡化用戶對于測試的維護(hù)和理解。其中,describe關(guān)鍵字通常包含了各種方法規(guī)范;而it關(guān)鍵字則包含待測試的簡明代碼。如下簡單代碼清晰地展示了describe-it語法:

安裝步驟

  • 步驟1:應(yīng)事先在系統(tǒng)中安裝5.5版以上的PHP。如需進(jìn)行代碼覆蓋率分析,則要安裝phpdbg或xdebug。其中,Xdebug是一個可用于調(diào)試目的PHP擴(kuò)展。
  • 步驟2:通過安裝Composer來管理項目的依賴項,并可參考Kahlan的官方說明--https://kahlan.github.io/docs/getting-started.html#installation,來手動設(shè)置該框架。

使用Kahlan框架的優(yōu)勢

1. 提供了許多可用于測試不同場景的匹配器。

2. 提供了可用于解決各種依賴關(guān)系的stub選項。

3. 內(nèi)置了報告與導(dǎo)出功能。

4. 易于擴(kuò)展,并可根據(jù)需求進(jìn)行定制。

5. 允許用戶使用諸如:beforeAll、beforeEach、afterEach、以及afterAll等安裝(setUp)和拆卸(tearDown)方法。

6. 具有內(nèi)置的代碼覆蓋率導(dǎo)出器,可用于獲取有關(guān)代碼覆蓋率的詳細(xì)信息。

原文標(biāo)題:10 of the Best PHP Testing Frameworks for 2021,作者: Shalini Baskaran

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2019-02-15 09:00:00

機(jī)器學(xué)習(xí)API人工智能

2018-04-09 09:00:00

Java測試框架庫JUnit

2024-04-10 12:33:58

2024-10-11 09:35:23

FixturePytest函數(shù)

2019-08-05 09:45:19

Node.jsWeb開發(fā)前端

2021-08-10 08:00:00

微服務(wù)開發(fā)工具

2024-11-13 13:20:44

2019-04-29 09:00:00

數(shù)據(jù)可視化JavaScript圖表庫

2021-04-07 09:00:00

Web工具漏洞

2023-05-15 15:29:13

設(shè)計模式JavaScript

2024-01-18 12:25:11

2022-04-17 23:09:07

深度學(xué)習(xí)人工智能芯片

2024-01-22 08:15:42

API協(xié)議設(shè)計

2023-05-15 20:08:04

Linux字體

2018-06-26 09:00:00

前端WebAngular

2018-09-25 23:21:13

2010-09-13 17:17:04

2024-08-22 08:54:40

2010-07-07 11:30:16

UML十種圖

2020-08-13 07:00:00

工具技術(shù)管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號