文档章节

使用JMeter做web应用的压力测试

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 958
阅读 27
收藏 0

本文转自: http://www.cnblogs.com/super119/archive/2011/01/13/1935017.html这篇文章讲解了普通的web压力测试的配置方法.

和HttpUnit不同,JMeter是做压力测试的,而且JMeter不仅可以对web应用做测试,也可以对FTP服务器、LDAP服务器等进行测试。本文讲述如何使用JMeter来给web应用做测试 

首先是新建一个TestPlan和一个ThreadGroup,然后在里面加上各种各样的组件,也就是说,搞明白了JMeter的这些组件,测试就能做了,所以首先给出我本次测试EasyCluster的TestPlan文件: 

更直观一些,这里有张截图: 


首先我们新建一个ThreadGroup,Number of Threads表示模拟多少个用户来进行测试;Ramp-up Period表示多长时间把所有的Thread启完,也就是说,隔Ramp-up Period/Number of Threads就启动一个Thread;Loop Count表示一个Thread发出多少次测试请求,对于我们的web应用来说,就是发出多少次Http Request。 

然后添加一个 Http Request Defaults,有了这个,就不需要每次都在Http Request里面填server ip和port了,方便一些;然后添加一个Cookie Manager,对于某些使用cookie来实现session的应用来说,这是必须的;然后我们添加一个Once Only Controller,这是一种逻辑控制器,表示在该控制器下的Http Request,每个Thread只做一次,不会循环loop,所以,我们把主页和登录Action放在了这个下面;最后新建一个Interleave Controller(交替控制器),这也是一种逻辑控制器,表示在该控制器下的Http Request,Thread会依次执行,而不是乱序执行。还有一种情况就是,如果Thread反复执行同一个Http Request的话,web server会有cache,所以这种测试不理想,使用这种交替控制器,每次给web server的请求就不一样,所以效果会好一些,特别对于“搜索信息”这种功能来说很实用;最后加一个表格查看工具,这属于listener组件,在这个组件中可以定义输出文件的路径和名称,没有这个组件,JMeter是没有输出的,呵呵。在这个组件里可以以表格的方式看测试request和是否 success。 

最后还要配置一个最重要的部件,就是URL rewriting modifier,因为tomcat的session实现不是通过cookie的,而是通过session id的,就是说,用户登录有了session之后,tomcat就会维护一个session id,然后每次request的时候,要求每个http request的URL都要带上这个session id,就OK了!所以,我们新建一个HTTP URL Re-writing Modifier,然后在他的属性里面需要填写一个“Session Argument name”,因为tomcat中,使用URL Re-writing mode,URL是这样的:http://192.168.0.2:8080/easycluster/Login.ec;jsessionid=B1A75F512FB84EF0D52091D2ADE91491 

,所以,这里我们需要在这一项中填写“jsessionid”,JMeter就会到URL里面按照这个参数去把上面那个session id抓下来,然后每次request都带上这个东东;需要注意,这里还要将“Path Extension(use ";" as separator)”勾上,因为如上,tomcat的URL Re-writing中session id是以分号的方式加在URL上的,所以需要勾上这个选项,有些web server这个session和普通的URL parameter一样,是以?和&这种方式加上去的,这种情况下这个checkbox就不用勾了! 

一切就绪了,选择run就开始测试了!此外,如果在Test Plan中选中“Function Test Mode”这个checkbox的话,JMeter就会记录每次请求获得的HTML代码,这会非常影响性能,但对于第一次测试,要测试我们的配置是否正确了,这也是有用的。



本文转载自:http://blog.csdn.net/bluishglc/article/details/9411593

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
JMeter学习-001-JMeter初识

Apache JMeter是Apache组织开发的基于Java的开源压力测试工具(个人发现也可用于接口测试)。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试...

拎壶冲冲冲
2018/05/29
0
0
JMeter学习-003-JMeter与LoadRunner的异曲同工

本节主要对 JMeter 与 LoadRunner 的优缺点进行概要的总结,若有不足之处,敬请指正,不胜感激! 同时,我也不得不承认,在对 JMeter 和 LoadRunner 进行比较时,我个人的确偏向了 JMeter(免...

拎壶冲冲冲
2018/06/26
0
0
JMeter使用技巧

在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享。本文内容如下。 如何使用英文界面的jmeter 如何使用镜像服务器 Jmeter分布式测试 启动Debug...

长平狐
2013/03/12
822
0
JMeter和LoadRunner的异同

Notes:最近几天一直在搞测试软件,相继搞了LoadRunner和JMeter,现在和大家分享一下JMeter和LoadRunner的异同 Jmeter和LoadRunner的异同   1、Jmeter的架构跟LoadRunner原理一样,都是通过...

JavaOlder
2013/03/14
0
0
Apache JMeter 比惠普的 Load Runner 更好的原因

几个月前,我和其中一个朋友讨论了关于性能测试以及他所在组织的压力测试项目的未来及当前部署系统的性能问题。 在此期间他和我分享了在2012年中把HP Center 9.52(Load Runner商业班恩)升级...

oschina
2013/04/25
6.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring AOP 实现方法日志记录以及执行时间打印

注意:proxy-target-class="true" 这是决定是走jdk代理还是spring cglib代理的。高版本的(貌似)可以忽略。 1.在spring 相关配置文件中假如如下配置: <!-- 日志时间打印 --> <aop:config ...

轻量级赤影
4分钟前
0
0
使用应用程序(Java/Python)访问MaxCompute Lightning进行数据开发

MaxCompute Lightning是MaxCompute产品的交互式查询服务,支持以PostgreSQL协议及语法连接访问Maxcompute项目,让您使用熟悉的工具以标准 SQL查询分析MaxCompute项目中的数据,快速获取查询结...

阿里云官方博客
4分钟前
0
0
SVN chechout failed: xxx is not valid as filename in directory svn检出错误

SVN chechout failed: xxx is not valid as filename in directory svn检出错误 2018年05月29日 09:49:59 SieSteven 阅读数:820 版权声明:转载请注明出处,最好发邮件告知。谢谢 https://...

linjin200
6分钟前
0
0
QGIS for Android 开发:五、qgis for android demo编写

https://github.com/lutraconsulting/qgis-quick-demo-apphttps://github.com/yinyinnie/breakpad-for-androidhttps://github.com/google/breakpad.githttps://github.com/zhengtianzu......

洋碱
9分钟前
0
0
在DataWorks中实现指定UDF只能被指定账户访问

背景 之前写过一篇文章是关于“DataWorks和MaxCompute内部权限体系的区别”有兴趣的朋友可以点击阅读查看详情。但是还是有些同学会问,我如何在DataWorks中实现我的具体某个Resource,Table...

zhaowei121
11分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部