快速业务通道

如何使用Selenium测试工具对Ruby on Rails和Ajax应用程序进行功能测试 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
开一个命令提示符。然后转入应 用程序被解压到的那个目录。为了启动应用程序,运行 ruby script/server。应该看到 Rails 成功启动 了,如 图 1 所示。

图 1. 从命令提示符下运行 Ruby on Rails

现实中 的用例

在本节中,我将列出示例应用程序的用例。通过这些简化的用例,可以编写模拟用户所执 行步骤的验收测试,并验证这些步骤的结果是否与预期相符。股票报价应用程序实现了以下四个用例:

登录

查看股票

查看股票细节

退出

实现这些用例的代码已经编写好 了;可以在 app 目录中找到该代码,测试用例在 public/selenium/tests 文件夹中。

登录用例

大多数人都知道登录页面是如何工作的 —— 输入用户名和密码,然后将数据提交到 服务器。如果凭证有效,就可以成功登录,并看到受安全保护的资源。在示例应用程序中,这个测试用例 包含以下用户操作和断言,必须将它转换成一个 Selenium 测试用例:

单击登录链接。

验 证系统是否要求用户进行登录。

输入用户名。

输入密码。

按下登录按钮。

验证是否登录成功。

图 2 展示了用于这些需求的 Selenium 测试用例。注意,我是在运行测试之 后截取屏幕快照的。绿色箭头表示成功地通过验证的断言。

图 2. 登录和查看股票测试用例

如何使用Selenium测试工具对Ruby on Rails和Ajax应用程序进行功能测试(6)

时间:2011-07-25 IBM Christian Hellsten

查看股票测试用例

查看股票页面显示一个公司列表。用于这个页面的测试用例非常简单,所以被包括在前一个测试 用例的后面。该测试用例验证当前位置是否为 /main/list_stocks,以及页面是否包含文本 Click on a company name to view details。

查看股票细节用例

查看股票细节用例是在查看股票页面 上触发的。用户在一个公司名称上单击鼠标时,就触发了到服务器的一个 Ajax 请求。服务器的响应包括 该公司的详细信息,这些信息将插入到当前页面中,而不必重新装载完整的页面。用于这个用例的测试用 例执行以下用户操作:

单击公司名称 Acme Oil。

验证页面上是否显示该公司的详细信息 。

单击公司名称 Acme Automotive。

验证页面上是否显示该公司的详细信息。

由 于使用了 Ajax,请求是异步发生的。在一般的 Web 应用程序中,所有东西通常都是同步的,因此这一点 提出了一种不同的挑战。可以像测试其他功能一样来测试 Ajax 功能。惟一的不同是,必须让 Selenium 暂停,等待 Ajax 命令完成。为此,可以使用 pause 命令来等待 Ajax 命令的完成。另外,Joseph Moore 在他最近的 blog 贴中提到,还可以使用 waitForValue 和 waitForCondition 命令代替 pause 命令。

图 3 展示了被转换成 Selenium 用例的需求。

图 3. 查看股票细节测试用例

注意 pause 命令: 必须使用这些命令,以便等待异步请求完成和更新页面内容。如果没有 500 毫秒的暂停,测试将失败( 如 图 4 所示)。

图 4. 失败的查看股票细节测试用例

pause 命令还测试 Ajax 功能的非功能性需求。500 毫秒对于 pause 命令是一个很好的值,因为 Ajax 请求应该快速地执行 和完成。可以试着去掉 pause 命令,看看结果如何。如果测试在您的机器上失败,那么试着将这个值增 加到 1000 毫秒。

退出用例

退出用例很容易实现,简单来说只有以下两步:

单击 退出链接。

验证是否成功退出。

如何使用Selenium测试工具对Ruby on Rails和Ajax应用程序进行功能测试(7)

时间:2011-07-25 IBM Christian Hellsten

图 5 展示了最后这个测试用例。

图 5. 退出用例

所有测试都被添加到 图 6 左侧显示的缺省测试套件中。

图 6. 示例应用程序的测试套件

执行 测试套件

最后要做的是在 Mozilla Firefox 和 Microsoft Internet Explorer 中执行测试套件 。为此

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号