学习PHP精粹,编写高效PHP代码之自动测试

如果要制造出完美的产品,必须对它进行全方面检验测试。这里有几种类型的测试,每一种测试都针对应用程序的某个具体方面。

本文将对单元测试、数据库测试、系统测试、负载测试进行介绍。

一、单元测试

单元测试是测试应用程序的每一步,要确保其各个组成部分运转正常。若没有单元测试,在应用程序中找出导致错误运行的原因一般来说相当困难。

单元测试通常采用一个单元测试框架,它提供了编写和运行测试并输出结果所需要的基本结构。

一些较为常用的单元测试框架包括:

PHPUnit:http://phpunit.de/

SimpleTest:http://www.simpletest.org/

PHPT:http://qa.php.net/write-test.php

二、数据库测试

PHPUnit数据库扩展模仿了JUnit的DbUnit扩展,它是事实上的Java单元测试框架。PHPUnit数据库扩展不处理创建数据库、表或用户凭证;它在假设这些已经创建的基础上运行。

PHPUnit数据库测试参考:http://phpunit.de/manual/current/en/database.html

三、系统测试

一旦系统的各个组成部分以及与外部系统的交互已经完成测试,那么我们将要对作为一个整体的应用程序进行测试,这成为系统测试。

对于Web应用程序而言,这往往通过编写自动化测试以一个真实用户会采用的相同方式与浏览器交互来完成。

编写和执行这种测试的流行软件包是Selenium,它是一个基于Java的服务器,运行客户端连接到它,执行命令以启动浏览器并与之交互。该软件常常用于在Web应用程序内部执行一系列动作,并对最后加载的文件内容进行断言以确认其达到预期的功能。

Selenium:http://seleniumhq.org/

PHPUnit包含一个Selenium扩展,它允许这些交互得以执行。

四、负载测试

一旦应用程序工作正常,无论是其各个组成部分还是作为一个整体,我们非常有必要了解应用程序作为一个整体如何运行。

负载测试模拟一组用户的行为以确定应用程序在负载下如何表现。

接下来将介绍两种测试工具:ab、siege

1、ab测试工具

作为Apache HTTP服务器项目的组成部分,ab是一个相对简单的已开发基准测试工具,并且适用于大多数安装有Apache的环境中。

它有许多参数,我们对其如何引导测试稍加调整,其中有3个经常用到的参数:

1)-c #:每秒的并发请求数,或同时访问应用程序的用户数量。

2)-n #:要发送的请求书。

3)-t #:测试持续的以秒计算的最长时间,假设为-n 50000。

因此,举例来说,如果你想模拟一分钟内10个并发用户的行为,你可以使用如下命令:


ab -c 10 -t 60 http://localhost/phpinfo.php

ab使用参考:http://httpd.apache.org/docs/2.0/programs/ab.html

2、Siege测试工具

另一个常用的负载测试工具是Siege,它由Joe
Dog软件开发。ab的负载测试限制在一个特定的URL上,而除了URL之外,Siege还可对整个应用程序进行负载测试。Siege手册介绍了它的所支持的选项。

Siege:http://www.joedog.org/siege-home/

Siege手册:http://www.joedog.org/siege-manual/

学习PHP精粹,编写高效PHP代码之自动测试,布布扣,bubuko.com

时间: 2024-08-11 07:34:59

学习PHP精粹,编写高效PHP代码之自动测试的相关文章

学习PHP精粹,编写高效PHP代码之自动测试捉着左姿追紫

http://www.ebay.com/cln/db5_vnbp/2015-01-30/166769985010 http://www.ebay.com/cln/vz7_jbbd/2015-01-30/166919740013 http://www.ebay.com/cln/59z_jvxx/2015-01-30/166659285017 http://www.ebay.com/cln/5v9_zzfz/2015-01-30/166659292017 http://www.ebay.com/cl

学习PHP精粹,编写高效PHP代码之安全性

一.过滤输入.避免输出 有时我们将短语"过滤输入.避免输出"缩写为FIEO,这已成为PHP应用程序的安全真言. 1.利用ctype进行验证 ctype:http://php.net/ctype 2.利用PCRE(Perl兼容的正则表达式)进行验证 PCRE:http://php.net/pcre 二.跨站脚本 跨站脚本通常简称为XSS,攻击载体以在应用程序输出中由用户提供的变量所在位置为目标,但该变量没有适当地转义.这允许攻击者注入他们选择的一个客户端脚本作为这个变量值的一部分.下面是

如何编写高效android代码

基于Android相关设备作为嵌入式设备范畴,在书写App应用的时候要格外关注效率,并且受电池电量的限制.这就导致嵌入式设备有诸多考虑.有限处理能力,因此就要求我们尽量去写高效的代码.本文讨论了很多能让开发者使他们的程序运行更有效的方法,遵照这些方法,你可以使你的程序发挥最大的效力. 引言 对于占用资源的系统,有两条基本原则: 不要做不必要的事 不要分配不必要的内存 所有下面的内容都遵照这两个原则. 1.避免建立对象 世界上没有免费的对象.虽然GC为每个线程都建立了临时对象池,可以使创建对象的代

怎样编写高效java代码

代码质量概述 怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友提出宝贵的意见. 代码质量所涉及的5个方面,编码标准.代码重复.代码覆盖率.依赖项分析.复杂度分析.这5方面很大程序上决定了一份代码的质量高低.我们分别来看一下这5方面: 编码标准:这个想必都很清楚,每个公司几乎都有一份编码规范,类命名.包命名.代码风格之类的东西都属于其中. 代码重复:顾名思义就是重复的代

学习PHP精粹,编写高效PHP代码之质量保证

一.使用静态分析工具测量质量 我们用静态分析测量代码而不运行它.实际上,我们将这些工具用于评估代码.读取文件.衡量它所写的要素.使用这些工具,可以帮助我们对代码库有一个完整的层次化的认识,甚至在代码库变得更大.更复杂的时候也能掌握. 静态分析工具是项目过程中的一个关键组成部分,但是,只有定期使用它们,并以理想的方式进行每一次提交,静态分析工具才真正显示出价值.这些工具涵盖了代码的所有方面,从计数类和计算行数,到识别哪里有提示使用复制和粘贴的类似代码段.然后我们来看看静态分析工具在代码质量中两个特

学习PHP精粹,编写高效PHP代码之性能

position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位问题.所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置. position:absolute(绝对定位) 当position属性定义为absolute时,元素会脱离文档流

学习PHP精粹,编写高效PHP代码之安全性抓浊追昨阻座

http://www.ebay.com/cln/l91_tbnx/2015.01.29/166695464010 http://www.ebay.com/cln/j3h_zndt/2015.01.29/166651358018 http://www.ebay.com/cln/djx_phdn/2015.01.29/166695470010 http://www.ebay.com/cln/l91_tbnx/2015.01.29/166695471010 http://www.ebay.com/cl

学习PHP精粹,编写高效PHP代码之安全性追琢醉最子揍

http://www.ebay.com/cln/5jx_pbrr/2015.01.29/166503067017 http://www.ebay.com/cln/dtr_xzbl/2015.01.29/166568264018 http://www.ebay.com/cln/p33_zxlf/2015.01.29/166877329015 http://www.ebay.com/cln/n37_zztl/2015.01.29/166877333015 http://www.ebay.com/cl

学习PHP精粹,编写高效PHP代码之质量保证啄撞最籽走篆

http://www.ebay.com/cln/rph_dtpp/2015.01.29/166633781012 http://www.ebay.com/cln/vt3_xvnp/2015.01.29/166635276010 http://www.ebay.com/cln/fpv_fpth/2015.01.29/166633772012 http://www.ebay.com/cln/hht_njrd/2015.01.29/166739532016 http://www.ebay.com/cl