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

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

AJAX 技术下软件测试自动化的实现方法

发布: 2009-4-17 15:20 | 作者: James McCaffrey | 来源: 测试时代采编 | 查看: 97次 | 进入软件测试论坛讨论

领测软件测试网

ant: normal; text-transform: none; padding-bottom: 7px; line-height: 16px; color: rgb(51, 51, 51); ">如果当前映射位于该区域的首行(1、2、3),则单击“北”后不会产生任何影响。其他情况下,我将得到当前映射位置的数字,这个数字减去 3 后即可确定相应的新 JPEG 图像,并更新该图像控件的 ImageUrl 属性。“南”、“东”和“西”按钮控件的处理程序与之类似。
需要强调的是,在此我并没有为了保持应用程序代码的简短易读而故意不采用更好的编码方法。在实际的 Web 应用程序中,代码逻辑很可能需要访问后台 SQL 或 XML 存储库并从中提取数据,然后使用这些数据更新应用程序状态。由于本专栏中的技术通过 Internet Explorer DOM 测试 Web 应用程序,因而如何确定应用程序状态并不重要 - 任何用户输入都可能导致应用程序状态的改变,用户输入将反映在应用程序的 UI 中,用户可通过 Internet Explorer DOM 访问这些 UI。
传统的非 AJAX 方法向 Web 服务器发布 HTTP 请求,并以“窗体”对象或查询字符串的形式传递请求信息。映射应用程序不需使用 AJAX 技术便能运行,但这种方法存在两个缺点。第一,由于 HTTP 请求/响应机制是同步的,因此,尽管请求由 Web 服务器进行处理,但用户在该响应返回客户端之前几乎无法与 Web 应用程序进行交互。第二,多数情况下 HTTP 请求会导致创建整个响应页面,因此当由 Internet Explorer 收到响应时,将重新绘制整个页面。如果请求/响应相对较快(或更糟),这将导致出现恼人的页面闪烁效果;如果操作较慢,则将导致页面变为空白。
AJAX 可解决上述两个问题。AJAX 通过发送 XMLHTTP 请求而非 HTTP 请求进行工作。XMLHTTP 请求是异步的。因此,在后台处理 XMLHTTP 请求的同时,用户可继续与 Web 应用程序进行交互。并且当收到 XMLHTTP 响应时,系统可使用 Internet Explorer DOM 仅重新绘制存放新数据的网页区域,而不必重新绘制整个页面。
我不是通过编写“原始”JavaScript 来启用 ASP.NET 映射应用程序上的 AJAX,而是使用 Microsoft ASP.NET AJAX 框架来启用它。Microsoft ASP.NET AJAX 框架的使用方法相当简单,因为它在安装时提供了一个 Visual Studio® AJAX 网站模板。选择该模板便可将所需的程序集引用添加到 Web 应用程序项目中。为了在映射应用程序中启用 AJAX 功能,我向源文件添加了下列标记:
<asp:ScriptManager ID="sm" runat="server" />
然后,我将图像控件(我想在异步请求-响应后更新该控件)封装在 ASP.NET AJAX UpdatePanel 控件中,如下所示:
<asp:UpdatePanel ID="up1" runat="server">
  <ContentTemplate>
    <asp:Image ID="Image1" runat="server" ImageUrl="~/5.JPG" 
               (other attributes omitted) />
  </ContentTemplate>
  <Triggers>
    <asp:AsyncPostbackTrigger ControlID="Button1" EventName="Click" />
    <asp:AsyncPostbackTrigger ControlID="Button2" EventName="Click" />
  </Triggers>
</asp:UpdatePanel>
这就是对 Microsoft ASP.NET AJAX 框架所做的全部工作。非常好!该框架将处理所有杂乱的细节,如创建 XMLHTTP 对象、侦听异步响应、错误处理、跨浏览器差异等。
请注意,仅当存在对 Button1(“北”)控件和 Button2(“南”)控件的单击事件时(而非对所有四个定向控件的单击事件),我才会启用 AJAX 异步请求/响应。我这样做的目的是为了说明本月专栏中介绍的测试技术既可用于异步请求也可用于同步请求。如果您使用本文附带的代码下载内容尝试运行该应用程序,则会发现“北”请求和“南”请求 (AJAX) 与“东”请求和“西”请求(非 AJAX)之间的区别。
大多数传统测试自动化技术都对 AJAX Web 应用程序不起作用。测试 Web 应用程序功能的最基本方法是以编程方式发送 HTTP 请求(该请求对应于某用户向 Web 服务器输入信息后所生成的请求)、提取 HTTP 响应,然后检查此响应以确定“pass/fail”(通过/失败)结果。这种方法不适用于 AJAX 应用程序,因为这些应用程序使用特殊的 XMLHTTP 请求。
另一种传统方法是使用 JavaScript 操纵 Internet Explorer DOM 以向 Web 服务器发送请求,等到 onload 事件触发(发出客户端已收到并已加载响应的信号)后,然后使用 JavaScript 和 Internet Explorer DOM 来检查网页的新状态以确定“pass/fail”(通过/失败)结果。使用此方法产生的问题是,由于 AJAX 采用的是异步工作模式,因而您无法使用 onload 事件来确定客户端收到响应的时间。但您可对这种方法稍作修改,以创建适用于 AJAX 应用程序的小型测试自动化软件。收到响应时,您不必使用 onload 事件来发出信号,而是可通过编写代码来监视应用程序,使应用程序状态按照要求发生某些变化,然后将控制权转至回调函数。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

62/6<123456>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网