信息化 频道

通过Application和Session传递参数问题

  【IT168评论】1. web页面的概念

  Web是internet上一个非常重要的资源信息网,产生于20世纪90年代初,它遵循超文本传输协议,以超文本或超媒介的形式传送各种各样的信息,为用户提供了一个具有友好的图形化界面----Web页面,以便用户阅读internet上的信息文档。Web页面其实是一个单一的文件,其特点主要表现在:

  1) Web是图形化的和易于导航的。Web可以在一页上同时显示色彩丰富的图形和文本的性能,同时Web非常易于导航,它可以在各页各站点之间进行浏览了。

  2) Web与平台无关。无论你的系统平台是什么,你都可以通过Internet访问WWW。

  3) Web是分布式的。大量的图形、音频和视频信息可以放在不同的站点上。只需要在浏览器中指明这个站点就可以了。

  4) Web 是动态的。Web站点的信息包含站点本身的信息,信息的提供者可以经常对站上的信息进行更新,Web动态的特性还表现在Web是交互的,通过超连接可以连接任意可以连接的页面,从服务器方获得动态的信息。

  2. Application/Session传递参数方法概述

  Web页面是动态和交互的,Web页面之间的数据交换往往存在一些参数的传递,不管是通过哪种语言平台编写Web页面处理程序,其参数传递的方式方法类似,且多种多样,常见方式主要包括通过URL地址、Application/Session、Cache、Cookie以及基于服务器文件或数据库等。

  Application/Session中定义变量的方式传递参数相对于用户来说是一种隐式的传递方法,这种方式传递参数的优势就是逻辑简单清晰,保密性好。在发送端的页面处理程序中我们可以定义参数如:

  Application["ParamID"]=ParamValue;

  Session["ParamID"]=ParamValue;

  在接收页面处理程序中引用参数:

  VarID=Application["ParamID"];

  VarID=Session["ParamID"];

  这样就可以完成参数的传递。

  Application与Session方式的区别在于:

  1) 从应用范围看:Application参数的作用域是相对于整个应用程序的,也就是整个网站的,Session参数作用域仅对单个用户有效或单次会话有效。

  2) 从生命周期看:Session是在站点的页面从打开到被关闭之前一直生存的,关闭或跳转到其它网站就会使Session死掉,而Application是从站点发布以来一直存活的,除非重启了站点服务。

  3. Application/Session传递参数常见应用问题

  1) Application/Session都要占用内存,消耗宝贵的服务器资源,如果使用不当,比如没有手工释放内存,可能会造成内存泄露;

  2) 对于用户量较大的应用系统,每个用户使用Application或Session资源时,可能对系统造成很大的资源压力;

  3) Application是全局对象,任何用户都可以访问,可能导致用户变量之间的值覆盖,从而丢失信息或信息错误;

  4) Application虽然是全局对象,但是站点服务重启后,数据会丢失,应用过程中可能会丢失用户信息;

  5) 混淆Application与Session使用,Session作用域仅针对单次会话,用户会话结束,Session变量数据就丢失,应用过程中可能会产生作用域和作用周期错误,丢失用户信息;

  6) Session有超时时间设置,如果设置过短可能会导致单次会话过程中数据丢失。

  4. Application/Session传递方式常见问题测试方法

  针对采用Application/Session传递参数的Web程序,为发现及解决其应用问题,我们通过以下几个方面进行测试:

  1) 系统内存溢出检测。可通过两种方式,人工审查代码,检查Application/Session使用时是否经过手工是否内存;另外在系统运行过程,也可监测系统在长时间稳定运行情况下,该系统对应进程耗用内存资源是否越来越多,如果呈不断上升趋势,则存在内存溢出可能;

  2) 对于有大量用户访问需求的应用系统,必须进行性能测试,检测在大量用户登录及进行各种事务操作时系统是否存在性能瓶颈,同时通过性能监测工具进行性能瓶颈分析和定位,检测Application与Session使用是否导致性能瓶颈;

  3) 对于采用Application传递全局参数的应用系统,可通过人工检查代码的方式审查每个Application的作用域是否合理。同时也必须对应用系统功能实现进行相关检测和验证,切换不同用户进行事务操作时重点检查同一事务不同用户是否出现数据错乱、丢失情况;

  4) 对于采用Application传递全局参数的应用系统,在应用系统运行过程中重新启动系统服务,检测系统是否出现丢失数据情况;

  5) 人工检查Application与Session的使用,重点关注是否有混用现象。在系统运行过程中,用户登录后切换或者关闭当前会话,重新进入后检测必须保存的数据是否丢失,而无须保存的数据是否继续有效;

  6) Web应用系统运行过程中,客户端链接访问后,在系统设定的超时时间内不再进行交互操作,检测系统是否可以继续运行;同时在超出设定的超时时间内不进行交互操作,检测系统是否结束当前会话,以检查Session超时时间设置是否有效与合理。

  5. 应用建议

  针对Application与Session地址传递参数应用问题,在应用中有如下建议:

  1) 适宜用在传递一些关键全局性的参数,且宜为字符类型的参数,千万不要通过它来传递大内存对象;

  2) 注意Application与Session的作用域和作用周期,避免混用和错用;

  3) 对用户量较大的系统少用或者不用,因为要消耗大量的内存资源。

  总结

  Web页面参数传递方式多种多样,各有优缺点,用户在开发和测试过程中,针对各自特点选择相应方式进行设计和相关处理。在Web页面处理程序测试过程中,测试人员应先充分了解Web页面参数传递采用的方式,如果采用Application与Session进行参数传递,则根据其特点和应用中常见的问题,采用正确的方法进行测试,以解决各种应用问题,提高Web应用程序的质量。(中国软件评测中心 李亚伟)

0
相关文章