当前位置:  开发笔记 > 后端 > 正文

ASP.NET会话超时测试

如何解决《ASP.NET会话超时测试》经验,为你挑选了3个好方法。

我正在对ASP.Net网站进行一些黑盒测试,我需要测试不同的会话超时情况.

我不确定他们是否完全封装了会话超时.其他一个页面打开20分钟是否有更简单的方法来强制会话超时?



1> J c..:

减少超时

最简单,最具侵入性的测试方法可能是将超时时间减少到相当小的数量,例如3或5分钟.这样,您可以暂停几分钟以模拟更长的暂停,而无需担心应用程序重新启动或对测试结果有任何影响的特殊重置代码.

您可以在几个位置修改会话状态超时 - 全局(位于适用的.NET框架版本的config文件夹中的web.config),或仅适用于您的应用程序.

要仅为应用程序修改超时,可以将以下内容添加到应用程序的web.config中:

  
     
  ...

或者,您也可以通过IIS配置对话框修改应用程序的相同设置(我相信您仍然需要为您的应用程序定义web.config,否则将禁用编辑配置).

要访问它,请在IIS中右键单击Web应用程序,然后导航到"属性"| ASP.NET选项卡| 编辑配置| 状态管理选项卡| 会话超时(分钟).

请注意,您也可以通过代码操作此设置 - 如果已经完成此操作,则实际上将忽略web.config文件中的设置,您将需要使用其他技术.

呼叫Session.Abandon()

比设置低超时稍微更具侵入性的技术是调用Session.Abandon().请务必从与应用程序分开的页面调用此方法,因为在处理当前页面上的所有脚本命令之前,会话实际上并未结束.

我的理解是,这将是一种相当干净的方法来测试会话超时而无需实际等待它们.

强制重启应用程序

在会话状态的默认配置中,您可以通过使应用程序重新启动来彻底清除会话来模拟会话超时.这可以通过多种方式完成,其中一些方法如下:

通过回收应用程序池

IIS MMC管理单元

命令行(iisapp/appPoolID/r)

修改bin目录中的web.config,global.asax或dll

重启IIS

IIS MMC管理单元

services.msc并重新启动IIS Admin服务

命令行(iisreset)

当我提到"默认配置"时,我的意思是配置为使用"InProc"会话状态模式的Web应用程序.即使重新启动Web应用程序(StateServer,SQLServer,Custom),还有其他模式可以实际维护会话状态.

篡改状态跟踪机制

假设您的Web应用程序未配置"无cookie"模式(默认情况下将使用cookie),您可以从客户端浏览器中删除包含会话ID的cookie.

但是,我的理解是,这并不是真正模拟超时,因为服务器仍然会知道会话,它不会看到任何人使用它.没有会话ID的请求将被视为需要新会话的看不见的请求,这可能是您想要测试的,也可能不是.



2> John Sheehan..:

添加页面到站点并调用Session.Abandon()



3> 小智..:

最简单的方法是在两个不同的选项卡中打开页面,在其他选项卡上注销会在第一个选项卡中自动使会话到期.大多数浏览器在选项卡上共享会话.所以我发现在没有修改web.config中的任何内容的情况下很容易.这样,即使特定功能在会话到期时未处理重定向到登录,您也可以进行测试.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有