使用开源工具测试 Web 应用程序
2010-02-04 00:00:00 来源:WEB开发网我希望您阅读完整的 Selenium RC FAQ,以理解它如何与多个浏览器进行交互。如您所见,使用 Selenium 自动化跨平台功能测试非常容易,并且支持很多语言,包括 HTML、Java™ 代码、C#、Perl、PHP、Python 和 Ruby。
Windmill
Windmill 是一个类似于 Selenium 的 Web 测试框架,但也有一些不同之处。一个主要的区别是 Windmill 是用 Python 和 JavaScript 编写的,并且是在 Chandler 项目下开发的。这个开源项目是 Microsoft® Outlook 的有力竞争者。
要开始使用 Windmill,仅需运行命令:sudo easy_install windmill。这将安装 windmill 测试框架。接下来,如果输入 windmill firefox,将打开 Windmill IDE(见图 2)。然后会打开测试页面,如图 3 所示。在图 2 中您可以看到,IDE 记录行为的方式与 Selenium 很相似。然后保存该测试文件,它类似于清单 6 中的输出。
图 2. Windmill IDE 窗口
图 3. Windmill 教程
查看原图(大图)
清单 6. 示例测试文件输出
# Generated by the windmill services transformer
from windmill.authoring import WindmillTestClient
def test_recordingSuite0():
client = WindmillTestClient(__name__)
client.click(id=u'recordedClickId')
client.click(id=u'textFieldOne')
client.type(text=u'foo bar', id=u'textFieldOne')
client.click(id=u'btnSub')
这里有一个选项可以将测试保存为 JSON 或 Python,在本例中我保存为 Python。接下来,仅需从命令行的测试选项运行测试文件,就能够实际运行测试。清单 7 显示了运行测试的代码。
清单 7. 运行测试
# windmill firefox test=windmill_test.py
http://tutorial.getwindmill.com/
Started ['/Applications/Firefox.app/Contents/MacOS/firefox-bin',
'-profile', '/var/folders/1K/
1KgyCzqJHButzT6vq8vwHU+++TI/-Tmp-/tmp_ovtnN.mozrunner',
'http://tutorial.getwindmill.com/windmill-serv/start.html']
Server running...
您可以对这个例子稍作修改,就可用于 Google App Engine 应用程序或其他 Web 应用程序。Windmill 还提供出色的文档,解释如何执行高级任务,比如使用插件扩展 Windmill。
结束语
功能测试对 Web 开发过程十分重要。如果没有功能测试,Web 开发就像猜谜游戏一样,容易出现错误的部署和重构。
那么,是不是所有 Web 开发人员都必须执行功能测试呢?我认为是这样的,所有 Web 应用程序都应该接受测试,尤其是在云环境中使用的应用程序。不对 Web 应用程序进行功能测试是很危险的,并且用 Selenium、Windmill 和 twill 进行最低级别的测试是非常容易的。在此引用 twill 的作者 Titus Brown 的话结束本文 “如果没有测试代码,您怎么知道它能正常工作呢?”。
本文示例源代码或素材下载
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››开源平台Meego和Android之间的对弈
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
更多精彩
赞助商链接