基于TestNG 与Selenium 的自动化测试设计与实施

发表于:2012-8-03 10:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:congqing2011    来源:51Testing软件测试网采编

分享:

  实现起来比较容易,使用TestNG注释功能,就可以将这些数据作为页面的输入。而测试数据是指数据库中基础数据,这些数据是用来支撑整个系统运作的,比如操作员及组织权限,新装订购的套餐,套餐与产品的关系数据等等,没有这些数据,系统就没有办法正常运行,所以执行测试脚本之前要对这些基础数据进行初始化;还有一种情况当执行完一次测试脚本时产生的新数据会影响测试脚本的二次运行,这意味着运行任何测试之前,都希望数据库具有一组干净的数据,使用 DBUnit 的 CLEAN_INSERT 命令确保在先前运行的测试中创建的行被删除掉,因此我可以重新运行测试,该测试可以不断创建数据并且不用考虑数据库约束。将测试数据提前整理到xml文件,也可以从数据库直接导出到xml文件里,如图所示:

  在执行测试脚本前,通过DBUnit将这些文件里的数据提前初始到数据库里,这样一来数据库就是程序所期望的样子。

  (2)测试用例层,包含业务逻辑和控制逻辑。驱动程序WebDriver(Selenium2.0)负责UI数据的载入,在页面回放时将UI数据输入到页面中。前台页面回放完成后,数据进入持久阶段,这时需要比对后台业务处理逻辑,比如客户数据是否正确写入数据库,产品订购是否正确。由于输入的不同,场景的不同,业务逻辑比对也会不同,所以这块脚本的编写是整个环节中比较重要的部分。为了能够区分这些分支,需要将整个新装流程拆分多个模块进行管理,使用TestNG将测试用例分组,形成多个Test Suite进行控制。

  (3)待测系统层,与测试端完全分离,被测系统只需要提供URL通过HTTP协议就可以被测试脚本调用执行。

  4、自动化测试的持续集成

  持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础,持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,也能尽快将测试脚本投入生产使用。

  通过SVN统一代码管理,在Ant或Maven脚本增加测试组件配置,当例行编译结束后即可以使用Hudson定时启动测试脚本的运行工作。运行结束后返回测试报告给测试人员。整个迭代周期如下图所示:

  5、结语

  软件自动化测试弥补了手工测试时重复劳动的缺陷,而且能在软件开发过程中尽早发现缺陷,因此实施自动化测试是非常有必要的。本文中介绍了几种自动化测试工具,通过不同的工具组合成适用自己的自动化测试框架,不仅使自动化测试在产品测试中发挥其独特的作用,而且还节约了资源成本,包括测试工具购买的成本以及人力资源成本等。

55/5<12345
100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号