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

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

phpunit入门基础

发布: 2009-3-30 21:15 | 作者: 网络转载 | 来源: 测试时代采编 | 查看: 439次 | 进入软件测试论坛讨论

领测软件测试网

  图中绿色高亮的行代表测试用例有覆盖,红色相反。而左边的数字代表
  此行代码被执行过几次。
  代码覆盖率报告对指导我们编写测试用例将有极大的帮助,详见
  http://www.phpunit.de/pocket_guide/3.2/en/code-coverage-analysis.html
  结合Phing完成自动化部署
  Phing(http://www.phing.info/trac/ )是一个基于Apache Ant的加
  快PHP项目部署的工具。当在一个新环境部署PHP项目时,代码的正确性
  不能得到保证,这就需要在部署之前做针对性的测试,只有测试通过整个
  过程才能继续。Phing使用XML文件定义部署过程,其中测试部分动作可
  以使用PHPUnit完成,下面是一个
  示例性的部署文件:
  <?xml version="1.0"?>
  <project name="BankAccount" basedir="." default="test">
  <target name="test">
  <phpunit haltonfailure="true" printsummary="true">
  <batchtest>
  <fileset dir=".">
  <include name="*Test.php"/>
  </fileset>
  </batchtest>
  </phpunit>
  </target>
  </project>
  其中需要部署的模块名为BankAccount,动作为test,使用测试工具
  为phpunit,所有的测试用例文件为*Test.php。
  如果一切正常,使用Phing部署后可以得到类似下面的结果:
  phing
  Buildfile: /home/sb/build.xml
  BankAccount > test:
  [phpunit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.00067 sec
  BUILD FINISHED
  Total time: 0.0960 seconds
  当然,如果build失败则你应该根据测试失败的提示来debug你的程序。
  结合Selenium做大型自动化集成测试
  前述的测试都是单元测试,测试的输入都是基于变量和类,而非基于用
  户行为,例如浏览器的点击。在软件工程定义中,集成测试是在单元测试之
  后的更高级别的测试,用PHPUnit作基于浏览器的自动化集成测试需要
  Selenium的支持。Selenium(http://www.openqa.org/selenium/ )是一
  个完整基于浏览器做集成测试的框架。它通过在页面中嵌入js来模拟用户
  行为。Selenium的经典架构如图:
  可以看出,我们需要一个额外的Selenium Server来负责转发HTTP请求和执行用户动作。除此之外,剩下的就是在利用Selenium RC For PHP编写测试用例。PHPUnit集成了Selenium的API接口,通过直接调用Selenium的API即可完成测试动作和结果验证,一个典型的测试如下:
  <?php
  set_include_path(get_include_path().PATH_SEPARATOR.'./PEAR/');
  require_once 'Testing/Selenium.php';
  require_once 'PHPUnit/Framework/TestCase.php';
  class GoogleTest extends PHPUnit_Framework_TestCase {
  private $selenium;
  public function setUp() {
  $this->selenium = new Testing_Selenium("*firefox", "http://www.google.com");
  $this->selenium->start();
  }
  public function tearDown() {
  $this->selenium->stop();
  }
  public function testGoogle() {
  $this->selenium->open("/");
  $this->selenium->type("q", "hello world");
  $this->selenium->click("btnG");
  $this->selenium->waitForPageToLoad(10000);
  $this->assertRegExp("/Google Search/", $this->selenium->getTitle());
  }
  }
  ?>

延伸阅读

文章来源于领测软件测试网 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认证国际软件测试工程师认证领测软件测试网