web应用压力测试试怎么用session

2009年11月 Oracle大版内专家分月排行榜第二2009年10月 Oracle大版内专家分月排行榜第二
2009年5月 Oracle大版内专家分月排行榜第三
2005年11月 扩充话题大版内专家分月排行榜第三
2009年11月 Oracle大版内专家分月排行榜第二2009年10月 Oracle大版内专家分月排行榜第二
2009年5月 Oracle大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。关注51Testing
使用JMeter 完成常用的压力测试
发表于: 15:33 &作者:未知 & 来源:网络转载
推荐标签:
  Login.jsp 和welcome.jsp。其中 login.jsp 负责生成 User 对象,并调用 User 的login。当 login 返回为 true 时转向到 welcome.jsp。其验证部分的代码:  &%&& if( request.getParameter("Submit") != null) {& User ur= new User( request.getParameter("user"), request.getParameter("pwd"));& if( ur.login()){& session.setAttribute("user", ur);& response.sendRedirect("/gWeb/welcome.jsp");& } else{& session.setAttribute( "LOGIN_ERROR_MSG", "无效的用户,可能原因:用户不存在或被禁用。");& response.sendRedirect("/gWeb/index.jsp");&& }& }& %&  web.xml,配置 filter 拦截所有访问 JSP 页面的请求:  &filter&& &filter-name&authorizen&/filter-name&& &filter-class&org.foxgem.jmeter.AuthorizenFilter&/filter-class& &/filter& &filter-mapping&& &filter-name&authorizen&/filter-name&& &url-pattern&*.jsp&/url-pattern& &/filter-mapping&  2. 创建如下结构的Web测试计划:    其中主要测试元件说明如下:  http请求默认值负责记录请求的默认值,如服务器、协议、端口等。第一个http请求,请求login.jsp,并附加验证所需要的参数(user=foxgem,pwd=,Submit=Submit);其包含的响应断言验证url中包含"welcome.jsp",这一点可以从程序中反应。  第二个http请求,请求是welcome.jsp;其包含的响应断言验证响应文本中包含"foxgem",它是welcome.jsp页面逻辑的一部分。  http cookie管理器负责管理整个测试过程中使用的cookie,它不需要设置任何属性。  循环控制器设置发送第二个请求的循环次数,表格监听器负责收集和显示第二个请求的测试结果。  启动测试计划之后,执行的顺序是:首先,第一个请求登录页进行登录;成功登录之后,使用循环控制器执行第二个请求。请求welcome.jsp时,响应断& 言用来验证是否确实是welocme.jsp来处理请求,而不是因为其它页。在这个测试计划中需要注意的是http& cookie管理器。正是由于它的作用,使得第二个请求能顺利的发送到welcome.jsp进行处理,而不是因为缺少用户安全信息转发到& login.jsp。  在这个例子中,我们并没有在程序中使用cookie(使用的是session),那么http cookie管理器怎么会起作用呢?这是因为在servlet/jsp规范中对于session的状态跟踪有2种方式:  使用cookie,保留和传递sessionid。它不要求程序对于url有什么特殊的处理,但是要求浏览器允许cookie。在这个例子中,就是这种情形。  使用url重写,每次显式的在浏览器和服务器之间传递sessionid。它要求程序对url进行编码,对浏览器没有要求。&&&&&&&&& 对于第二种情形,可以使用JMeter前置管理器中的http url重写修饰符来完成。对于Tomcat,Session参数是jsessionid,路径扩展使用";"。使用url编码时需要注意,必须将浏览器的& cookie功能关闭。因为url编码函数,如encodeURL,会判断是否需要将sessionid编码到url中。当浏览器允许cookie时,就不会进行编码。  如果cookie而不是session来保存用户安全信息,那么直接使用http cookie管理器就行了。此时,需要将使用的cookie参数和值直接写到管理器中,由它负责管理。对于其它的cookie使用,也是如此操作。  登录问题解决之后,对于 Web& 服务器的测试就没什么难点了。剩下的就是根据实际需要,灵活运用相关的测试组件搭建编写的测试计划。(当然,对于安全问题还有其它的使用情景。在使用时需要明确:JMeter 是否支持,如果支持使用哪种测试组件解决。)  数据库服务器  数据库服务器在大多数企业项目中是不可缺少的,对于它进行压力测试是为了找出:数据库对象是否可以有效地承受来自多个用户的访问。这些对象主要是:索引、触发器、存储过程和锁。通过对于sql语句和存储过程的测试,JMeter 可以间接的反应数据库对象是否需要优化。  JMeter 使用 JDBC 发送请求,完成对于数据库的测试。一个数据库测试计划,建立如下结构即可:    其中:  JDBC连接配置,负责配置数据库连接相关的信息。如:数据库url、数据库驱动类名、用户名和密码等等。在这些配置中,"绑定到池的变量名"& (Variable Name Bound to Pool)是一个非常重要的属性,这个属性会在JDBC请求中被引用。通过它,& JDBC请求和JDBC连接配置建立关联。(测试前,请将所需要的数据库驱动放到JMeter的classpath中)。& JDBC请求,负责发送请求进行测试。 图形结果,收集显示测试结果。  在实际的项目中,至少有2种类型的JDBC请求需要关注:select语句和存储过程。前者反应了select语句是否高效,以及表的索引等是否需要优& 化;后者则是反应存储过程的算法是否高效。它们如果效率低下,必然会带来响应上的不尽如人意。对于这两种请求,JDBC请求的配置略有区别:  Select语句    存储过程    如果对于oracle,如果测试的是函数,那么也可以使用select语句来进行配置,此时可以使用:select 函数(入参) from dual形式的语句来测试,其中dual是oracle的关键字,表示哑表。对于其它厂商的数据库产品,请查找手册。
搜索风云榜
51Testing官方微信
51Testing官方微博
测试知识全知道[经验分享]压力测试中因为Session而导致的OutOfMemoryException内存溢出有关问题及解决(2) - ASP.NET当前位置:& &&&[经验分享]压力测试中因为Session而导致的OutOfMemo[经验分享]压力测试中因为Session而导致的OutOfMemoryException内存溢出有关问题及解决(2)&&网友分享于:&&浏览:63次 &
Value Name018d4
System.String
0 instance 10683dfc MapPathResult0320bdb8
System.Boolean
1 instance
1 Evaluated030fd6
0 instance
CachedException0:000& !do 10683dfc& Name: System.StringMethodTable: EEClass: 02a42780Size: 88(0x58) bytes &(C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c\mscorlib.dll)String: E:\wwwroot\Web\recommendservice.svc看来第一个CacheEntry保存的是一个虚拟路径和物理路径的对应关系,接着分析下一个CacheEntry的数据如此类推发现!do 107b0de0得到的也是一个文件路径缓存数据!do 107b1e74得到System.Web.Security.FileSecurityDescriptorWrapper,看起来像是文件安全配置说明!do 107bdc14得到一个key为jbj1dejrlaibnmfyrnqldwk45的System.Web.SessionState.InProcSessionState对象!do 107bdef8得到一个key为jfd2qmyinc5sgpk55b2nks4rw的System.Web.SessionState.InProcSessionState对象107c70、107c142c、107c20f8等大部分CacheEntry保存的都是InProcSessionState对象由此可见,占用内存第二大的,都引用了占用内存第三大的InProcSessionState对象,而Asp.net的Session默认是保持20分钟,压力测试时,在20分钟内创建的Session全部被保持,无法被GC回收,从而内存不断增长,最终导致内存溢出了马上咨询压力测试人员,果然是压力测试发起了所有连接,都是新连接,通过修改压力测试方案,复用创建的连接,而不是发起 新连接,果然内存占用在400M左右,增长也极其缓慢最后的修改方案,因为此站点仅作为接口使用,不会使用到Session,直接在Web.config增加配置:&sessionState mode=&Off&&&/sessionState&关闭Session,再进行压力测试,内存基本不会增长原文链接------解决方案--------------------谢谢分享
------解决方案--------------------因为此站点仅作为接口使用,不会使用到Session,直接在Web.config增加配置:&sessionState mode=&Off&&&/sessionState&这是提高网站性能的常用方法即使使用Session,如果不进行写入,设置成ReadOnly也是必要的,很多情况下,处理程序有很多事件处理和解析aspx、ViewState的过程,都需要时间和资源进行处理和解析,尽量使用ashx也是好的做法
------解决方案--------------------这个 才是经验之谈 谢谢分享
------解决方案--------------------谢谢分享...
------解决方案--------------------谢谢分享
------解决方案--------------------谢谢分享...
------解决方案--------------------谢谢分享
------解决方案--------------------我就希望多看到这样的文章。谢谢楼主分享了~~
------解决方案--------------------我个人看法 session导致内存溢出,这都是代码问题。可以
用异步或者是其他技术 代替 存储服务器内存 这种代码。& 哪个溢出问题就不存在了。
------解决方案--------------------挤进前15!!!
------解决方案--------------------支持一下
------解决方案--------------------谢谢分享
------解决方案--------------------谢谢楼主分享
------解决方案--------------------谢谢楼主分享
------解决方案--------------------快乐分享
------解决方案--------------------楼主好人啊,谢谢分享
------解决方案--------------------虽然不懂 ,可能也用不到,但是学习了
------解决方案--------------------谢谢楼主分享。。。。
------解决方案--------------------谢谢分享!!!!
------解决方案-------------------- 共&3&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有您还没有登录,快捷通道只有在登录后才能使用。 还没有帐号? 赶紧
PTS压测Session持续大量增加导致JVM内存溢出问题
在线时间53小时
1.在一次测试登录业务过程中,发现场景执行一段时间后TPS骤降后一直持续降低,但是CPU利用里下降并不像TPS一样下降幅度这么大'995')this.width='995';">'995')this.width='995';">2.通过检查服务器JVM情况查看:'995')this.width='995';">'995')this.width='995';">通过查看jvm启动参数和jvm物理内存占用情况基本可以看出内存使用存在明显问题,按理说200并发执行登录业务不应该占用这么多内存。'995')this.width='995';">'995')this.width='995';">后面通过jstat命令产看old area的内存使用已经100%,导致一直在持续FULLGC,后又通过Jmap命令产看jvm堆中内存对象,看到ConcurrentHashMap和Standersession联想到tomcat使用ConcurrentHashMap来存储session,可能是压测的时候一直持续创建Session,而Session在短时间内不会释放,JVM内存溢出后导致持续FULLGC,进而直接影响业务性能,所以测试执行一段时间后TPS骤降。3.为避免后续压测过程当中出现同样问题,更改SLB配置,让SLB启用会话保持。修改后压测,问题得以解决:'995')this.width='995';">
访问内容超出本站范围,不能确定是否安全
限100 字节
批量上传需要先选择文件,再选择上传
您目前还是游客,请
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
&回复后跳转到最后一页4被浏览3268分享邀请回答11 条评论分享收藏感谢收起写回答}

我要回帖

更多关于 压力测试 并发用户数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信