zoukankan      html  css  js  c++  java
  • 浅谈session测试

    Session 是用于保持状态的基于 Web 服务器的方法,在 Web 服务器上保持用户的状态信息供在任何时间从任何页访问。Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象。当我们使用用户名和密码登陆网站,系统会首先验证当前登陆用户是否合法,当合法后将用户名等相关信息保存在Session 中。登陆后点击进入某功能页面时,系统也会去判断当前你是否有访问权限,判断的方式是验证Session 中的内容是否正确。

      在测试的过程中,怎样去测试Session 是否正确呢?

    1、直接访问需要登陆后才能访问的页面地址(包含弹出窗口),复制出URL地址直接在粘贴在地址栏访问,如果能正常访问表示当前页面未做Session验证处理。(有部分程序是判断你访问的页面是否在框架里面,这种方式不是Session问题)

    2、登陆后就不再操作页面,等达到Session过期时间后点击页面任意一个链接,如果能正常访问表示Session实效时间设置不正确。(如何设置session的有效期)

    3、登陆后点击[退出]或[重新登陆]按钮,系统返回到登出界面或者登陆界面后,点击浏览器的后退按钮,正常情况是不能返回到之前操作的界面直接跳转到登陆界面。如果能返回到之前操作的界面,或者是出现其它异常信息,表示系统未做Session删除处理或者系统处理不恰当。

    Session测试

      (1)Session是客户端与服务器端建立的会话,总是放在服务器上的,服务器会为每次会话建立一个sessionId,每个客户会跟一个sessionID对应。

      并不是关闭浏览器就结束了本次会话,通常是用户执行“退出”操作或者会话超时时才会结束。

      (2)测试关注点:

      1)Session互窜

      Session互窜即是用户A的操作被用户B执行了。

      验证Session互窜,其原理还是基于权限控制,如某笔订单只能是A进行操作,或者只能是A才能看到的页面,但是B的session窜进来却能够获得A的订单详情等。

      Session互窜方法:

      多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,登陆用户B, 此时两个TAB页都是B的session,然后在另一个A的页面执行操作,查看是否能成功。 预期结果:有权限控制的操作,B不能执行A页面的操作,应该报错,没有权限控制的操作,B执行了A页面 操作后,数据记录是B的而不是A的。

      2)Session超时

      基于Session原理,需要验证系统session是否有超时机制,还需要验证session超时后功能是否还能继续走下去。

      测试方法:

      1、打开一个页面,等着10分钟session超时时间到了,然后对页面进行操作,查看效果。

      2、多TAB浏览器,在两个TAB页中都保留的是用户A的session记录,然后在其中一个TAB页执行退出操作,马上在另外一个页面进行要验证的操作,查看是能继续到下一步还是到登录页面。

    安全测试CheckList:

    http://www.51testing.com/?83470/spacelist-blog-itemtypeid-8724.html

  • 相关阅读:
    正则表达式和grep
    Java程序员常用工具集
    在 TDA 工具里看到 Java Thread State 的第一反应是
    Java线程Dump分析工具--jstack
    一个Tomcat配置参数引发的血案
    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat等使用详解
    jstat的用法
    Java命令学习系列(2):Jstack
    JVM调优之jstack找出最耗cpu的线程并定位代码
    linux内核cdev_init系列函数(字符设备的注册)
  • 原文地址:https://www.cnblogs.com/shengs/p/4113496.html
Copyright © 2011-2022 走看看