成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

譯文
開發 前端
本文將和您一起探討十種優秀PHP測試框架是如何實現測試自動化,以及它們各自的優缺點。

[[388760]]

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

  • 維護具備良好定義的代碼結構。
  • 提供能有效用于測試的可重用模塊和庫。
  • 可加快測試的進程與效率。
  • 可避免代碼的重復。
  • 能夠分析需求與測試的范圍。

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

1. PHPUnit

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

安裝步驟

您需要事先安裝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框架的優勢

作為公認好用的PHP框架之一,PHPUnit在進行自動化測試過程中具有如下優勢:

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

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

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

2. Codeception

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

安裝步驟

安裝Codeception的先決條件為:

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

Codeception的具體安裝步驟為:

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

使用Codeception框架的優勢

1. 作為“全棧測試框架”,您可以對目標應用進行單元測試、功能測試、以及驗收測試。

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

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

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

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

6. 具有對于Web服務測試非常實用的REST模塊。為了驗證JSON響應,該模塊可從特定的JSON標簽中提取數據,并驗證各種XML響應。

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

3. Storyplayer

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

安裝步驟

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

使用Storyplayer框架的優點

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

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

4. SeleniumHQ

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

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

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

安裝步驟

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

使用Selenium框架的優勢

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

2. 具有雄厚的支持社區。

3. 易于安裝,且易于實現對用例的測試。

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

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

6. 可用于執行與瀏覽器對應的鍵盤和鼠標之間的交互。

5. Behat

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

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

安裝步驟

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

使用Behat框架的優點

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

2. 易于安裝和實施。

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

4. 其詳細的文檔可幫助用戶輕松地實現該框架。

6. Atoum

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

安裝步驟

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

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

使用Atoum框架的優勢

1. 易于編寫測試用例。

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

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

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

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

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

a. json-schema-extension — 用于驗證JSON標簽。

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

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

7. SimpleTest

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

安裝步驟

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

使用SimpleTest框架的優勢

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

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

3. 具有內置的Web瀏覽器,可協助測試Web應用。

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

5. 可與PHPUnit一起使用。

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

8. phpspec

作為另一種行為驅動開發(BDD)框架,phpspec可用于編寫和執行由PHP編寫的測試。它能夠根據開發人員提供的規范,來驅動設計。

安裝步驟

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

使用phpspec框架的優勢

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

9. Peridot

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

安裝步驟

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

使用Peridot框架的優勢

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

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

3. 可通過與WebDriver和數據庫相集成,來執行測試。

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

5. 可協助執行高速集成測試。

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

10. Kahlan

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

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

安裝步驟

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

使用Kahlan框架的優勢

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

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

3. 內置了報告與導出功能。

4. 易于擴展,并可根據需求進行定制。

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

6. 具有內置的代碼覆蓋率導出器,可用于獲取有關代碼覆蓋率的詳細信息。

原文標題:10 of the Best PHP Testing Frameworks for 2021,作者: Shalini Baskaran

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

 

責任編輯:華軒 來源: 51CTO
相關推薦

2019-02-15 09:00:00

機器學習API人工智能

2018-04-09 09:00:00

Java測試框架庫JUnit

2024-04-10 12:33:58

2024-10-11 09:35:23

FixturePytest函數

2019-08-05 09:45:19

Node.jsWeb開發前端

2024-11-13 13:20:44

2021-08-10 08:00:00

微服務開發工具

2019-04-29 09:00:00

數據可視化JavaScript圖表庫

2021-04-07 09:00:00

Web工具漏洞

2023-05-15 15:29:13

設計模式JavaScript

2024-01-22 08:15:42

API協議設計

2023-05-15 20:08:04

Linux字體

2010-08-30 16:18:05

2020-08-13 07:00:00

工具技術管理

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十種圖

2024-01-18 12:25:11

2022-04-17 23:09:07

深度學習人工智能芯片
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品免费一区二区 | 日韩成人在线视频 | 久久久久无码国产精品一区 | 91在线网 | 色永久 | 欧美性大战久久久久久久蜜臀 | 国产a区| 日韩成人av在线 | 国产一区精品在线 | 国产精品一区三区 | 欧美成人免费电影 | 精品乱码一区二区三四区视频 | 亚洲精品1区| 成年人黄色免费视频 | 国产精品揄拍一区二区 | 中文字幕视频在线 | 98成人网| 91在线视频免费观看 | 高清国产午夜精品久久久久久 | 91亚洲视频在线 | 欧美日一区二区 | av免费观看网站 | 欧美精品被 | 综合久久av | 欧美日韩久久 | 污视频在线免费观看 | 日韩免费一区 | 亚洲欧美在线一区 | 欧美成人免费在线 | 国产日韩欧美一区 | 国产精品免费大片 | 九九亚洲精品 | 久久久噜噜噜久久中文字幕色伊伊 | 国产成都精品91一区二区三 | 男女羞羞在线观看 | 日韩综合在线 | 欧美8一10sex性hd | 日韩在线视频观看 | 国产成人精品久久 | 一级毛片免费视频观看 | 99爱视频|