文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

值得推荐的十种PHP测试框架

2024-12-03 08:56

关注

【51CTO.com快译】作为一种可以支持测试和开发活动的工具与过程的集合,框架往往包含了各种实用的程序库、可重用的模块、测试数据的设置、以及其他依赖项。目前,无论是针对Web的开发、还是测试,业界都有多种成熟框架,可供您根据实际需求进行选择,进而提高团队的效率和生产力。而作为一个优秀的框架,它通常需要具备如下优点:

同时,在所有服务器端的编程语言中,有80%的网站用到了PHP。因此,我们有必要对针对PHP测试框架开展深入研究,以方便采用标准的格式,编写出各种测试用例。下面,我将和您一起探讨十种优秀PHP测试框架是如何实现测试自动化,以及它们各自的优缺点。

1. PHPUnit

作为一种面向程序员的最常用PHP测试框架,PHPUnit非常适合单元测试。它是由Sebastian Bergmann开发的,属于xUnit框架体系结构中的一个实例。

安装步骤

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

使用PHPUnit框架的优势

作为公认好用的PHP框架之一,PHPUnit在进行自动化测试过程中具有如下优势:

可以有效地分析代码的覆盖率。通过深入分析,它可以生成包含有各种代码覆盖率信息的报告,或HTML/XML日志文件。在碰到无法测试的代码块时,我们可以使用诸如@codeCoverageIgnore、@codeCoverageIgnoreStart和@codeCoverageIgnoreEnd之类的注释,在执行代码覆盖率分析过程中,忽略某些代码块。当然,我们也可以通过使用@covers注释,来指定某个代码块去执行代码覆盖率分析。

在执行测试用例时,某些测试可能无法被执行到。对此,PHPUnit提供了一个可触发异常的接口。

如下面的简单XML配置文件所示,我们可以将所有测试组合到一个套件中,并在XML配置文件的协助下触发运行。

2. Codeception

由于具有易于使用和维护代码模块的能力,因此Codeception的使用范围非常广。它提供了多个模块,可以在单个框架中支持验收测试、功能测试、以及单元测试。

安装步骤

安装Codeception的先决条件为:

Codeception的具体安装步骤为:

使用Codeception框架的优势

作为“全栈测试框架”,您可以对目标应用进行单元测试、功能测试、以及验收测试。

通过使用简单的命名规则,它能够协助用户理解代码。其中,actions关键字可用于执行诸如:单击、按键、填充输入字段等用户操作;assertion关键字可用于执行验证,就像使用TestNG和Junit进行验证一样;而grabbers则可用于提取相关信息。

提供了一种可在JBehave和Cucumber等行为驱动开发(BDD)中,运行用户故事(user stories)的选项。

提供了各种对于数据库测试非常实用的数据库模块。

具有WebDriver模块,可用于验收测试。

具有对于Web服务测试非常实用的REST模块。为了验证JSON响应,该模块可从特定的JSON标签中提取数据,并验证各种XML响应。

有助于与Jenkins和Teamcity等持续集成工具相集成,以协助生成测试报告。

3. Storyplayer

作为一个开源的PHP测试框架,Storyplayer可用于执行端到端测试、API自动化测试、以及Web应用测试。由于它提供了对于多种编程语言的支持,因此可谓优秀PHP框架之一。

安装步骤

使用Storyplayer框架的优点

提供了无需订阅或付费的开源框架服务,这对于PHP的Web开发新手来说,非常实用。

支持多种编程语言,让PHP的开发和测试更加容易。

4. SeleniumHQ

作为已被广泛使用的Web应用自动化测试框架,Selenium包含四个主要组成部分:

由于这些组件是为特定目的设计的,因此您可以根据实际测试需求进行选择。

安装步骤

除了具有最新版本的PHP,您还需要安装Composer,以管理项目的所有依赖项。

使用Selenium框架的优势

属于开源的自动化测试框架。

具有雄厚的支持社区。

易于安装,且易于实现对用例的测试。

可以在诸如Google Chrome、Firefox、Safari、Internet Explorer等不同的浏览器中运行测试用例,并能够无缝地测试浏览器的兼容性。

可在多个浏览器和操作系统中,并行且快速地执行测试脚本。

可用于执行与浏览器对应的键盘和鼠标之间的交互。

5. Behat

作为一种PHP行为驱动开发(BDD)框架,Behat专为PHP而构建,并包含了许多核心的PHP模块。由于其代码是用简单的英语编写而成,因此它能够被项目的各个成员快速地理解。我们通常将BDD结构里包含的上下文、操作和结果,统称为Gherkin。以下便是使用Gherkin语言编写的简单测试示例:

这些案例可以被写入具有可扩展功能的文件中(如loginTest.feature)。Behat可以从命令行来运行测试,就像通过各种功能性的文件,来测试应用程序一样。

安装步骤

使用Behat框架的优点

属于一种开源的测试框架。

易于安装和实施。

由于全部是由BDD和简单英语(包含Given、When和Then关键字的Gherkin语言)编写,因此项目成员易于理解需求和测试用例之间的映射关系。各种场景可被写入功能性文件中,并由上下文、后续操作和最终预期结果所组成。

其详细的文档可帮助用户轻松地实现该框架。

6. Atoum

作为一款较新的PHP测试框架,Atoum不但简单,而且易于实现单元测试。由于提供了诸如内联引擎、隔离引擎、以及并发引擎等各种内置的执行引擎,因此Atoum可以在不同的流程中,并行运行各种测试用例。此外,Atoum通过提供模拟构建的高级功能,来最大程度地减少测试运行中的依赖性。

安装步骤

在安装与设置Atoum框架之前,请确保您的系统中已安装了最新版本的PHP。

使用Atoum框架的优势

易于编写测试用例。

提供了多个易于有效实现测试用例的断言(assertions)。

通过快速完成模拟测试,可以减少解析依赖关系时的等待时间,进而提高测试的执行效率。

可生成不同格式的测试报告。

可与Jenkins、Travis CI、CircleCI等持续集成工具相整合。

可通过添加如下插件,让测试框架更加稳定。

a. json-schema-extension — 用于验证JSON标签。

b. bdd-extension — 用于编写具有更好可读性的BDD样式测试用例。

c. reports-extension - 用于编写代码覆盖率的报告。

7. SimpleTest

作为一款PHP测试框架,SimpleTest可用于单元测试、Web测试、以及PHP Web开发的模拟对象。该框架通过内置的Web浏览器,以方便用户导航到不同的网页上,并开展测试。

安装步骤

使用SimpleTest框架的优势

对于单元测试非常实用。

为表单、SSL、框架、代理、以及基本身份验证,提供了广泛的支持。

具有内置的Web浏览器,可协助测试Web应用。

可通过浏览器,以及命令行来执行测试。

可与PHPUnit一起使用。

具有高度的灵活性,并能够自定义输出结果。

8. phpspec

作为另一种行为驱动开发(BDD)框架,phpspec可用于编写和执行由PHP编写的测试。它能够根据开发人员提供的规范,来驱动设计。

安装步骤

使用phpspec框架的优势

9. Peridot

Peridot常被开发人员誉为可使用BDD方法的优秀PHP框架之一。在Peridot中用describe-it语法编写出的测试代码(见如下代码段),不但易于阅读和理解,而且便于维护。由于能够快速地加载,且能并行地运行测试套件,因此它被认为是PHP框架中最快的一款。

安装步骤

使用Peridot框架的优势

可使用熟悉的describe-it语法,来创建清晰易读的测试语言。

为了实现扩展,可使用各种类型的插件来自定义测试框架。

可通过与WebDriver和数据库相集成,来执行测试。

与上述Phpspec和PHPUnit之类的PHP框架相比,Peridot属于轻量级和快速型。

可协助执行高速集成测试。

提供针对不同特定目的而专门设计的报告器,如:Peridot List报告器、并发报告器、以及代码覆盖率报告器等。

10. Kahlan

作为一种单元式和行为驱动的PHP框架,Kahlan使用了类似于Peridot的describe-it语法。无需任何PHP扩展,我们即可将该开源框架作为补丁植入(stub)代码。

Kahlan同样使用describe-it语法,来简化用户对于测试的维护和理解。其中,describe关键字通常包含了各种方法规范;而it关键字则包含待测试的简明代码。如下简单代码清晰地展示了describe-it语法:

安装步骤

使用Kahlan框架的优势

提供了许多可用于测试不同场景的匹配器。

提供了可用于解决各种依赖关系的stub选项。

内置了报告与导出功能。

易于扩展,并可根据需求进行定制。

允许用户使用诸如:beforeAll、beforeEach、afterEach、以及afterAll等安装(setUp)和拆卸(tearDown)方法。

具有内置的代码覆盖率导出器,可用于获取有关代码覆盖率的详细信息。

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

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯