基于AJAX技术的应用系统的测试

2014-09-17 14:40:02黄华峰黄华林
电脑知识与技术 2014年22期
关键词:应用系统测试

黄华峰 黄华林

摘要:随着互联网应用的不断普及,各类基于网络的应用系统的规模及复杂性也与日俱增。传统的Web应用服务结构中服务器在响应客户端请求时返回一个新的完整的网页,而采用AJAX技术的web应用服务仅返回页面发生变化的部分。文中从AJAX技术的有关情况入手,分析了AJAX技术的工作流程和原理,以及该技术的优点与缺点,介绍了基于AJAX技术的应用系统的一般测试方法。

关键词:AJAX;应用系统;测试

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)22-5345-03

AJAX技术指的是一种创建交互式网页的开发技术。该技术是一种比较新型的Web应用开发技术,采用AJAX技术可以为用户提供最好的Web体验。AJAX技术是Web2.0时代的标志性技术,虽然提出的时间较晚,却也得到广泛的应用和支持。在应用AJAX技术中,很多用户体验到该技术为网页操作带来的改变。众所周知,浏览器的厂家和版本众多,所采用的客户端系统也有所不同,代码兼容性有很高的要求,进行调试比较困难。确保用户可以更加快捷的提升操作速度的同时,如何保障基于AJAX技术的Web应用系统的质量也同样重要。

1 AJAX技术的工作原理及流程

AJAX技术的核心之一是XMLHttpRequest对象,这是一种可以支持异步请求的技术。换句话来说,XMLHttpRequest可以将用户信息以异步方式发送到服务器端,并接收服务器响应信息和数据。在建立Web应用时,AJAX为客户端页面的刷新提供很大的方便。例如,在电子商务系统中,AJAX技术可以对购物车的物品总数进行及时更新,不需要用户单击Update并等待服务器重新发送整个页面。AJAX技术可以减少由服务器下载的数据量,从而提升应用系统的性能。例如,在某个购物车页面中,如果对购物车中的某项物品的数量进行更新,会把整个页面重新载入,这就要把整个页面的数据从服务器端下载下来。若采用AJAX技术计算总数量,服务器端只返回更新后的总数量数据,传输的数据量大大减少。采用AJAX技术可以直接对表格的数据进行编辑,不需要用户导航至新的页面才能进行数据编辑。如果用户单击了Edit,AJAX技术会把静态的表格刷新为可进行编辑的表格。如果用户单击了Done,就会发出一个AJAX请求实现更新服务器、刷新表格的效果。AJAX技术可以在无刷新的情况下更新界面,这就好比在用户与服务器之间添加了一个中间层,确保用户操作及服务器响应达到异步化的目的。AJAX引擎主要负责处理、验证数据,如果需要由服务器读取新数据时,可以让引擎代为向服务器递交请求。为了对 AJAX技术的工作原理更加清晰的认识,通过图1和图2进行比较。

通过比较得出,AJAX技术与传统的Web开发有所不同,AJAX没有以静态页面的形式看待Web应用。AJAX技术的Web应用是由相对较少的页面组合而成,这里不同页面就如一个小型的AJAX应用。AJAX向服务器发送出HTTP请求,并异步方式处理服务器响应,其采用客户端浏览器XMLHttpRequest对象并对其加以初始化,运用XMLHttpRequest对象的open和send方法对服务器发出HTTP请求,在其onreadyStateChange事件响应中指定一个事件处理函数来处理XMLHttpRequest对象的执行结果。

2 分析AJAX技术的优点与缺点

1) AJAX技术可以在网页内部与服务器间达到通信的效果,没有必要对整个页面进行刷新,不仅节省出大量的网络资源,也在一定程度上减轻了服务器的负担,提升了Web应用的响应速率,为用户带来更加全新的体验。AJAX技术可以在网页内部与服务器进行通信,确保可以建立智能化的客户端控件。比如:建立数据表格、树形控件等的复杂控件。

2) 智能化的客户端控件可通过XMLHttpReqeust和服务器进行通信,从而获取相应的数据,也可以对数据进行处理和缓存操作。智能化的客户端控件有自己独特的属性、方法、及事件,确保Web编程如桌面的编程一样具有丰富的功能。

3) AJAX技术不仅可以保障Web应用保留自己B/S结构的优点,也具备C/S结构应用比较强大的功能和用户感受。由此可见,AJAX技术就是Web标准和Web应用的集合体,它在很大程度上改善了Web应用的可用性和用户的交互体验,最后获取用户及市场的一致认可。

3 AJAX应用系统的测试

3.1 基于AJAX的应用系统测试难点

1) AJAX的异步响应的特性使得测试变得困难

传统的Web应用服务下,终端用户习惯了点击按钮或链接然后等待浏览器载入页面。但在动态HTML和AJAX应用中,终端用户希望通过页面进行方便的互动,用户界面测试就变得复杂了。加上各种基于AJAX的架构出现巨大的变化,对测试人员的技能水平要求更高了。

基于AJAX技术的应用系统,把更多工作转移到客户端,其用户界面变得越来越相似,AJAX应用变得越来越复杂。因为AJAX以异步方式运行,所以测试程序没法设定状态,需要AJAX开发者从语法上分析服务端调用是如何影响性能及测试策略的。

2) JavaScript的调试也较为困难

JavaScript是AJAX应用的基础,其本身就存在一些独有的测试问题。从某些角度看,JavaScript是一种“啰嗦”的脚本语言,调试起来比较困难。测试人员需要找出JavaScript引擎在什么地方出现问题,然后与开发者一起围绕该问题点进行改进。AJAX应用倾向于调用JavaScript程序,并且程序的加载顺序需要测试人员事先明确指定。再有,不同的浏览器对AJAX的处理也不尽相同,测试人员也要为此做更多的修改工作。

3) AJAX框架还会涉及其他方面的变化。

AJAX框架还会涉及其他方面的变化。例如JSON,很多AJAX架构在AJAX中使用JSON部分取代了XML,同时提升其JavaScript对象特性。JSON数据格式比较简单,易于读写,易于解析,支持多种服务器端语言,已广泛使用。但是,不同AJAX框架的编码请求方式不尽相同,在测试AJAX应用时,测试人员需要花时间来弄清楚相应请求报文的含义。

3.2 用Selenium测试AJAX应用

1) Selenium简介

Selenium是一套较为流行的针对WEB应用的测试工具。使用Selenium可以编写模拟终端用户对Web页面所作操作的测试脚本,设定测试用例后可以自动地对Web 应用执行黑盒测试任务。Selenium可以作为浏览器的插件直接在浏览器内执行操作,为当前多种主流的浏览器所支持。第二代Selenium测试工具功能更加强大,其集成了WebDriver,WebDriver可以很便捷的直接控制浏览器。针对不同浏览器,测试人员可以选定相应的WebDriver去进行Web应用的测试。

2) Selenium测试AJAX应用程序

不需要服务器一次返回完整页面到客户端,是AJAX 应用程序的一大优势。客户端以异步方式向服务器请求数据,服务器也只按需返回变化的数据,客户端只重新渲染页面的变化部分,提高了用户体验,缩短了响应时间,相对传统的Web服务有着颠覆的变化,对AJAX 应用程序进行测试,其过程也有较大改变。

AJAX应用的以异步的方式执行发出请求到响应服务器回应的一系列动作的过程是,客户端先向服务器发出请求,接着AJAX处理程序进入等待状态,直到异步通信完成(获得服务器回应或出现异常等)。异步通讯完成后,AJAX程序将依据服务器的回应数据继续操作或是处理异常。在这个异步通信的过程中,AJAX处理程序存在等待状态,问题是,进行测试时,这个等待状态应该持续多长时间?

要让客户端有适当的等待时间来获得服务器回应,最简单最暴力的做法是在测试应用程序中暂停一段时间,例如使用Thread.sleep(5000)或者使用selenium.wait(5000),这种做法大多时候是可行的。不过,一旦遇到网络拥塞,AJAX处理程序发出请求过了暂停时间仍没得到服务器回应,那么测试用例就执行失败了。

使用Selenium过程中,要处理Web测试过程中的等待时间有几种便捷的方案可以选用。其中一种方式是,创建一个WebDriverWait对象,在指定时间内等待一个页面元素的出现,在WebDriverWait对象的until()函数中定义等待的退出条件。以下是使用WebDriverWait类的一段样例代码。WebDriverWait对象在5秒内每隔500毫秒扫描1次页面变化,当出现指定的元素"myElementId"后结束。

4 结束语

在Web应用服务中引入AJAX技术能显著提升Web应用服务的性能,增强应用系统的交互性,提升用户体验,同时系统的测试难度也增大了。该文以AJAX应用系统的测试为研究依据,概述了AJAX技术的工作原理及工作流程,分析了AJAX技术的优缺点,介绍了使用Selenium对基于AJAX技术应用系统进行测试的一般方法。

参考文献:

[1] 苏庆林.AJAX技术在基于Domino的油田协同办公中的应用[J].信息技术,2014(1):121-123,127.

[2] 吕国勇,史祥龙.基于嵌入式Linux和AJAX技术的Web异步交互设计[J].计算机应用,2013,33(z1):247-251.

[3] 陈瑞祥,季斌,王亚芳,等.基于AJAX的太阳能集热工程远程监控系统的设计[J].制造业自动化,2013(22):104-107.

[4] 王宏伟,孙文磊,何丽等.AJAX技术在Web零件库系统中的应用研究[J].制造业自动化,2011,33(12):107-110.

[5] 杨铁军,李旭东.AJAX技术在粮情测控系统中的应用研究[J].农机化研究,2011,33(7):181-185.

[6] 黄华林.基于Selenium WebDriver的B/S架构软件的自动化测试研究[J].电脑知识与技术,2013,9(23).

猜你喜欢
应用系统测试
幽默大测试
幽默大师(2020年11期)2020-11-26 06:12:12
“摄问”测试
“摄问”测试
“摄问”测试
VB应用技术下电教管理系统
高职学院信息化建设中面临的问题和思考
科技视界(2016年22期)2016-10-18 17:29:57
基于微信公众平台的应用系统开发模式研究
科技视界(2016年22期)2016-10-18 17:08:33
企业云平台建设研究