• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

浅析 PHP 官方自动化测试方法

发布: 2009-5-24 22:33 | 作者: 林容容 | 来源: 测试时代采编 | 查看: 33次 | 进入软件测试论坛讨论

领测软件测试网

 

如果该测试用例的实际输出与期待值一致,则在屏幕上输出测试结果如下:


清单 4. PHPT 测试总结报告实例
MILY: 'Andale Mono', 'Lucida Console', Monaco, fixed, monospace">=====================================================================  CWD         : /home/user_dir/php-5.2.8/sapi/cli/php  PHP         : /home/user_dir/php-5.2.8/sapi/cli/php  PHP_SAPI    : cli  PHP_VERSION : 5.2.8  ZEND_VERSION: 2.1.0  PHP_OS      : Linux rhas05 2.6.9-55.ELhugemem #1                        SMP Fri Apr 20 17:20:11 EDT 2007 i686 i686 i386 GNU/Linux  INI actual  :  More .INIs  :  Extra dirs  :  =====================================================================  Running selected tests.  PASS Test version string [001.phpt]  =====================================================================  Number of tests :    1                 1  Tests skipped   :    0 (  0.0%) --------  Tests warned    :    0 (  0.0%) (  0.0%)  Tests failed    :    0 (  0.0%) (  0.0%)  Tests passed    :    1 (100.0%) (100.0%)  ---------------------------------------------------------------------  Time taken      :    0 seconds  =====================================================================

如果该测试失败了,则除了屏幕输出失败结果外,当前运行目录下还会生成若干文件,以供用户分析测试失败的原因。生成的日志文件的种类是由环境变量 TEST_PHP_LOG_FORMAT 设定的,详见表 2 。如果设定的是 “ LEOD ” 则生成日志文件包括表 3 中列出的五种文件。


表 3. PHP 自动化测试的输出脚本文件
日志文件名 日志文件内容 对应的TEST_PHP_LOG_FORMAT里的设置
001.out 运行测试语句后得到的实际输出结果。 O
001.exp 脚本中的期待结果,即测试脚本中 EXPECT* 段的内容。 E
001.log 实际运行的输出结果和脚本中的期待结果,即 “ .exp ” 和 “ .out ” 的合集。 L
001.diff 实际运行的输出结果和脚本中的期待结果通过 diff 命令得到比对后的结果。 D
001.php 实际执行的 PHP 测试语句,在测试中解析测试脚本的 FILE 段得到。 总会生成

上面的例子是一次只运行一个脚本。 PHP 也支持多测试脚本一起运行。表 4 列出了三种 PHP 支持的测试方式。


表 4. PHP 自动化测试方式
测试方式 参数 举例
只执行单个测试用例 测试脚本名 001.phpt 002.phpt
执行某个目录下的测试用例 测试用例的目录名 test_dir/
执行某个文件中列出的测试用例 -r 加列举测试用例的文件名 -r record_file





回页首


PHP 自动化测试框架的原理和实现

在清单 3中的运行示例中,实际的执行语句是 “ $HOME/php-5.2.8/sapi/cli/php run-tests.php $HOME/php-5.2.8/sapi/cli/tests/001.phpt ” 。其中,“ 001.phpt ” 是测试脚本;“ run-tests.php ” 为 PHP 测试的驱动脚本,是官方脚本;而 “ $HOME/php-5.2.8/sapi/cli/php ” 是运行驱动脚本的 PHP 可执行对象。这里需要指出的一点是,环境变量 TEST_PHP_EXECUTABLE 中设置的 PHP 可执行对象和这里运行测试脚本中的 “ $HOME/php-5.2.8/sapi/cli/php ” 虽然指向的是同一个可执行对象,但其意义是不一样的。环境变量 TEST_PHP_EXECUTABLE 中设置的 PHP 是被测试对象,而运行测试中使用的 “ $HOME/php-5.2.8/sapi/cli/php ” 只是为了用来驱动测试脚本运行。

在图 1 中可以具体的看出 PHP 测试过程中两个 PHP 可执行对象及两个 PHP 脚本的关系。在测试的过程中,首先是由 “ $HOME/php-5.2.8/sapi/cli/php ” 去运行脚本 “ run-tests.php ” (第 1 步)。 在 “ run-tests.php ” 脚本中,将解析环境变量的值 “ TEST_PHP_EXECUTABLE =$HOME/php-5.2.8/sapi/cli/php ” (第 2 步)。这里 PHP 可执行对象是被测试的 PHP 。“ run-tests.php ” 脚本中还将把测试脚本 “ 001.phpt ” 中的 FILE 段解析为 PHP 脚本 “ 001.php ” (第 3 步), 用 “ TEST_PHP_EXECUTABLE ” 设置的那个 PHP 可执行对象去执行 “ 001.php ” (第 4 步)并得到实际输出结果,在比对实际输出结果和 EXPECT 段的期待结果后,输出测试结果(第 5 步)。以上运行过程可以从对 “ run-tests.php ” 脚本的分析中得出。


图 1. PHP 测试运行关系图
 

通过以上实例分析可以看出,PHP 官方测试的自动化主要依赖于 “ run-tests.php ” 脚本和测试用例脚本 PHPT 。而 “ run-tests.php ” 脚本正是 PHP 测试自动化框架的搭建者。从代码清单 5 中,可以略微看出 PHP 自动化测试框架的主要工作。

文章来源于领测软件测试网 https://www.ltesting.net/

32/3<123>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网