当前位置: 首页 > 质量专栏 > 2019年最好用的7个PHP测试自动化框架
2019年最好用的7个PHP测试自动化框架
2019-10-17 作者卓码测评 浏览次数5349

PHP是用于服务器端web开发的最流行的脚本语言之一,它被多个公司使用,特别是像WordPress这样的内容管理系统。如果你正在考虑使用PHP开发web应用程序,你还需要2019年最好的PHP框架之一来测试你的应用程序。你可以手动执行可视化和可用性测试,但是对于功能、验收和单元测试、跨浏览器测试,一个自动化的PHP框架将极大地加快测试周期。

卓码测评整理了2019年用于测试自动化的最佳的7个PHP框架,这些框架可以简化测试人员的工作,并确保更快地部署应用程序。

1. PHPUnit

图源网络:侵删

PHPUnit被认为是2019年自动化测试最好的PHP框架之一,用于使用PHP语言开发的应用程序的单元测试。与JUnit一样,它也是xUnit的一个实例,工作方式也几乎类似。Sebastian Bergmann创建该框架的目的是帮助开发人员检测代码中的错误。

安装条件

除了正确理解和使用PHP的开发经验,你还需要:

(1)最新版本的PHP安装在你的系统中;

(2)默认启用JSON和DOM扩展;

(3)你还需要spl、反射和pcre扩展。有一些扩展是默认启用的;

(4)代码覆盖需要Xdebug和记号赋予器。如果你想生成XML报告,xmlwriter是你需要的另一个扩展。

PHPUnit的优势

(1)与其他用于单元测试的测试自动化框架一样,PHPUnit帮助你开发性能良好且易于维护的代码;

(2)它还可以帮助你识别在将代码推进到进一步的测试阶段之前可能出现的缺陷;

(3)由于测试只由开发人员执行,所以在开发阶段早期就可以检测到问题;

(4)调试过程变得更加简单。只有当某个单元测试失败时才需要调试。

PHPUnit的缺点

(1)PHPUnit唯一的缺点是,开发人员需要在注释中利用@cover标记被测的方法。无论如何,如果你更改了方法或函数的名称而没有更新@cover注释,那么会漏过对该方法或函数的测试。

2. Codeception

图源网络:侵删

安装条件

你将需要安装PHPUnit的所有要求。除此之外,你还需要在项目的根目录中安装一个Composer。

Codeception的优势

(1)首先,你将获得用PHP语言编写测试用例的最佳方法。语法高亮也消除了语法中的错误;

(2)编写测试用例非常简单;

(3)你不仅可以进行单元测试,还可以通过添加套件进行其他测试,如验收或功能测试;

(4)支持多个框架,不需要任何扩展或更改代码。如果你的项目正在迁移,那么使用Codeception编写的旧测试用例将以同样的方式工作;

(5)Codeception的Db模块帮助测试人员从数据库中获取你需要的任何东西,并从测试模块中清理数据。因此,隔离测试变得容易得多;

(6)你可以使用XPath定位器或CSS选择器运行复杂的测试用例。REST和SOAP web服务也可以简单地使用cocheat进行测试;

(7)这些测试简单易读,足以让非技术背景的人清楚地理解。

Codeception的缺点

(1)由于框架模拟浏览器,因此得到假阳性结果的机会增加;

(2)需要一个框架来开始测试;

(3)无法测试AJAX和JavaScript。

3. Laravel Dusk

图源网络:侵删

Laravel Dusk是一个基于浏览器的测试自动化工具,用于测试基于PHP的web应用程序。这个工具还可以帮助你自动化重复性的任务。使用这个框架,你可以使用谷歌Chrome测试你开发的应用程序或任何其他已发布的网站。

安装条件

与其他测试自动化框架相比,Laravel Dusk的安装和使用非常简单。

(1)首先,在你正在开发的项目中,添加一个composer dependency laravel/dusk

安装 Dusk包之后,运行命令Dusk:nstall;

(2)默认情况下,你只能在Chrome上使用Dusk。为了在其他浏览器上测试应用程序,需要启动Selenium服务器。

Laravel Dusk的优势

对于使用PHP开发的应用程序,使用Laravel Dusk测试它是非常有利的。

(1)你可以开发最佳的身份验证和授权脚本;

(2)表示视图(如HTML)和业务逻辑(如SQL查询)可以很容易地分离;

(3)Laravel的迁移特性允许你创建标准格式的数据库表;

(4)对于开发人员来说,Laravel可以与Angular JS一起用于开发大型单页web应用程序;

(5)该工具还可以用来创建动态HTML元素,因为它也支持vue js;

(6)还可以使用elixir或gulp进行资产编译,它们可以缩小js和CSS文件,从而提高应用程序的性能。

Laravel Dusk的缺点

Laravel唯一的缺点是不能在除Chrome之外的其他浏览器上使用。现在,当客户需要一个跨浏览器兼容的网站时,这当然是一个缺点。

4. Behat

图源网络:侵删

Behat是一个行为驱动的测试工具,用于使用PHP开发的应用程序。该工具的目的是帮助涉众、管理层和开发人员在软件开发生命周期中进行非语言沟通。它在执行测试时将软件的行为与文档中记录的预期行为相比较来判断是否通过测试。

安装条件

有两种安装Behat的方法。

(1)最简单的方法是下载最新版本的behat.phar。你只需要把它放在项目文件夹中,运行命令$ php behat。phar -V,它将显示你是否正确安装了Behat;

(2)推荐的方法是像使用其他测试框架一样使用Composer。

Behat的优势

(1)测试用例是用人可读的方式编写的,特性描述了各个站点的规范,测试套件提供了由web应用程序特性组成的非常清晰的文档;

(2)有助于维护具有稳定部署周期的应用程序。你所需要做的就是运行测试,检测并修复bug,并重复这个过程,直到项目通过所有测试用例,从而得到一个稳定的应用程序;

(3)验收标准很容易理解,开发人员可以清楚地了解客户想要什么。没有任何阻碍,他们可以开始开发并添加新的功能。一旦功能成功地通过测试用例,它就为部署做好了准备;

(4)它可以帮助你与客户紧密合作,直到你们双方就产品的工作方式达成一致。因此,要求你遵循行为驱动开发的标准协议。

Behat的缺点

尽管有这些优点,也有一些缺点。

(1)Behat的实现需要相当长的时间;

(2)你还必须重新考虑和重组整个开发过程;

(3)与涉众和开发人员的讨论可能会扩展很多,直到你对如何开发特性达成了相互理解。

5. PHPSpec

图源网络:侵删

BDD是一种开发技术,它允许项目从规范和故事级别开始。PHPSpec是一个流行的BDD工具,它可以帮助你使用PHP编写干净的代码。开发首先描述对象的行为。一旦得到涉众的批准,下一个阶段就是开始编码。

安装条件

PHPSpec可以通过两种方法安装。

(1)使用Composer安装;

(2)使用编写器配置文件;

注:在开始安装之前,请确保系统中至少安装了PHP 5.6。

PHPSpec的优势

(1)在开始测试用例执行时,PHPSpec根据测试用例中方法的使用情况生成类或方法的框架。你所面对的任何额外的边缘都可以通过编写额外的测试用例来覆盖;

(2)通过重构,你可以在不改变外部行为方式的情况下重构整个代码;

(3)你还可以使用PHPSpec来测试使用Laravel开发的应用程序;

(4)PHPSpec有一个名为predict的模拟框架。预言确保每次测试都将所需类的模拟实例传递给构造函数。

PHPSpec的缺点

除了优点,也有一定的缺点。

(1)不能测试私有方法;

(2)假设你的公共方法返回一个值。如果它不是对象API的一部分,那你就不能测试它;

(3)不能使用PHPSpec执行集成测试。

6. Atoum

图源网络:侵删

Atoum是一个自动化框架,用于使用PHP语言开发的应用程序的单元测试。虽然它的行为有点像PHPUnit,但它更现代、更简单,而且是一个独立的框架。与PHPUnit不同的是,使用Atoum编写的测试用例易于阅读,而且简化了很多。此外,Atoum的断言器使你能够编写更少的代码并测试更多的功能。

安装条件

可以从他们的官方网站上获得最新版本的Atoum,目前有4种安装Atoum的方法。

(1)使用Composer;

(2)在GitHub克隆存储库;

(3)你可以从他们的官方网站下载PHAR档案;

(4)Atoum还可以通过与其他框架集成来使用。

Atoum的优势

Atoum有许多其他基于PHP的单元测试框架所没有的优点。

(1)它有一个灵活的结构。可以重命名目录、测试用例或套件以及任何你喜欢的名称;

有3个引擎用于执行测试用例。对于单个测试用例,你可以在默认提供的引擎之外定义一个特定的引擎;

(2)你可以用多种方式编写测试用例。要么用经典的方法,要么用学术的方法使用空断言,要么用更好更聪明的方法使用Atoum的断言;

(3)由于Atoum提供了一组自然断言,所以测试用例易于阅读和理解;

(4)你不再需要操作实际目录。在运行测试用例时,Atoum允许你创建一个由伪目录组成的虚拟文件系统,从而降低错误处理真实项目文件的风险;

(5)类构造函数可以被模拟。无论何时调用方法,都可以控制计算值;

(6)最好的特性是,Atoum可以轻松地与Gitlab、Jenkins、PHPCI、Travis CI等持续集成工具集成。它还可以与Atom、Netbeans、Sublime Text等多个ide一起使用。

Atoum的缺点

说到缺点,目前没有发现任何不能解决的问题。

7. Kahlan

图源网络:侵删

和Behat或PHPSpec一样,Kahlan是另一个行为驱动测试框架。它的不同之处在于,它通过使用description -it语法将PHP上的BDD测试向前推进了一步。就像Javascript或Ruby一样,使用这个框架,无需任何PECL扩展,就可以直接对代码进行monkey补丁或存根。

安装条件

(1)你需要在系统中安装一个稳定的最新版本的PHP(至少5.5版本)。之后,可以通过两种方式安装Kahlan;

(2)通过Git存储库安装。但是需要安装Composer和Git;

(3)作为一个开发依赖项,还可以从composer包中安装Kahlan。

Kahlan的优势

(1)包含JSpec、RSpec语法;

(2)一个更好的代码覆盖率度量;

(3)你可以检查是否在类上调用了特定的方法;

(4)存根系统更加灵活。不再需要预言或嘲笑;

(5)你可以通过monkey补丁轻松替换核心类和函数。

Kahlan的缺点

唯一的缺点是,Kahlan没有讲故事或开发基于场景的BDD的能力。

这些框架不仅适用于测试人员,也适用于开发人员。因为在当前的DevOps和敏捷时代,传统的规则不再流行。测试人员不再只做测试,开发人员也不再只做开发,优秀的测试人员或开发人员也必须具有其他领域的部分知识。

如果你是一名开发人员,行业不会期望你成为测试方面的专家,但是你应该具备一些基本的知识,比如编写代码的单元测试用例,或者能够理解测试人员在解释什么。

如果你是一名PHP开发人员或测试人员,上面提到的7个工具将对你的工作有很大的帮助。即使你是新手,学习上面列出的流行的单元测试或BDD工具也有利于你在该行业的职业发展。

以上是卓码测评整理的2019年用于测试自动化最佳的7个PHP框架,更多测试动态请关注卓码测评!


卓码软件测评是一家[ 具备CMA、CNAS双重资质 ]的专业做软件测试的第三方软件测试服务机构, 可根据您的需求提供各类软件测试服务,并出具合格有效的软件测试报告。点击→→可了解测试报价

部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。负责人:曾菲       电话:4006070568



精彩推荐:

做软件测评,首选第三方软件测评中心

什么是CMA,具备CMA资质的软件第三方检测机构有哪些?

软件测试资质有哪些?CNAS认可和CMA检测认定的区别是什么?

CMACNAS认证的测试机构有哪些?2020测试机构新排名

软件测评机构哪家好,软件检测报告多少钱?

文章标签: 测试框架 自动化测试
咨询软件测试