快速业务通道

追求代码质量 - 使用Selenium和TestNG进行编程式测试 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

追求代码质量 - 使用Selenium和TestNG进行编程式测试

时间:2010-12-10 IBM Andrew Glover

Selenium 是一种 Web 测试框架,它搭建了验证 Web 应用程序的新途径。与 大多数尝试模拟 HTTP 请求的 Web 测试工具不同,Selenium 执行 Web 测试时 ,就仿佛它本身就是浏览器。当运行自动的 Selenium 测试时,该框架将启动一 个浏览器,并通过测试中描述的步骤实际驱动浏览器,用户将使用这种方式与应 用程序交互。

由于开发人员和非开发人员都能够使用 Selenium 轻松地编写测试,使得它 从众多测试框架应用程序中脱颖而出。在 Selenium 中,可以通过编程的方式编 写测试,或者使用 Fit 样式的表,并且编写了测试后,可以使测试完全自动化 。使用一个 Ant 构件(比方说)运行完整的 Selenium 套件非常简单,并且还 可以在持续集成(Continuous Integration,CI)环境中运行 Selenium 测试。

这个月,我将介绍 Selenium,并逐一查看使它成为优秀 Web 测试框架的一 些特性 —— 尤其是在结合使用 TestNG、DbUnit 和 Cargo 这样的软件时。

验收测试

由于 Selenium 能够很好地模拟用户的行为,它常常用于进行验 收测试,即在完成的系统上运行一整套测试。验收测试通常需要运行整个应用程 序,以使测试发挥作用。如果您要测试一个 Web 应用程序,则需要访问应用程 序数据库,以及一台 Web 服务器,一个容器和运行应用程序所需的任何配置元 素。

使用 Selenium 进行编程式测试

在 Selenium 中,您可以使用自己喜爱的语言或者 Fit 样式的表通过编程来 编写测试。从测试的角度来说,不管使用什么语言,测试过程和结果都不会有显 著的差别。在此,我希望研究 Selenium 的编程方法,因为在结合使用 TestNG 时,它提供了一些有趣的可行方法能性。

使用具有类似 TestNG 这样的框架的 Selenium 进行编程式测试具有这样一 个优点,它允许您创建智能 fixture,而使用 Fit 样式的表则很难做到这一点 。TestNG 尤其适合与 Selenium 结合使用,因为它使您能够完成其他框架无法 做到的测试,例如使用依赖项进行测试,重新运行失败了的测试,以及使用单独 文件中定义的参数进行参数化测试。所有这些特性结合在一起,当然能够使它在 众多 Web 应用程序测试框架中脱颖而出,但是,正如您将看到的,在完全自动 化的验收测试中使用这些特性令它更加出众。

配置第一个测试

Selenium 架构实际上由两个逻辑实体组成:您编写的代码以及能够简化与测 试中的应用程序的交互的 Selenium 服务器。要成功地执行测试,必须要启动并 运行 Selenium 服务器实例以及要测试的应用程序。(当然,测试结果取决于您 编写的应用程序是否优秀!)

幸运的是,Selenium 服务器是一种轻量级程序,可以在实际的测试范围内通 过编程启动和停止它。Selenium 服务器(使用 Selenium 对象嵌入)的启动和 停止由一个 fixture 来执行。

要通过编程的方式启动 Selenium 服务器,必须创建一个新的 Selenium 对 象,并告诉它要使用哪一种兼容的浏览器 —— 我在下面的示例中使用的是 Firefox。您还必须提供运行服务器实例的位置(通常是 localhost,但不是必 须的),以及被测试的应用程序使用的基 URL。

在清单 1 中,我配置了一个本地 Selenium 实例,使用它在本地安装的 Web 应用程序上驱动 Firefox(http://localhost:8080/gt15/)。正如您从参数中 推断的一样,Selenium 是作为被测试的应用程序的代理,并相应地促进测试。

清单 1. 配置 SeleniumServer

Selenium driver =   new DefaultSelenium("localhost",  SeleniumServer.getDefaultPort(),    "*firefox", "http://localhost:8080/gt15/"); driver.start();

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号