文档章节

使用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应用测试但后来扩展到其他测试领域。 它可以用于测试...

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

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

拎壶冲冲冲
06/26
0
0
JMeter和LoadRunner的异同

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

JavaOlder
2013/03/14
0
0
开发人员学Linux(4):使用JMeter对网站和数据库进行压力测试

前言 表面看来,JMeter与本系列课程似乎关系不大,但实际上在后面的很多场景中起着重要作用:如何获知修改了某些代码或者设置之后系统性能是提升了还是下降了呢?商业的压力测试工具LoadRun...

周金桥
06/29
0
0
开发人员学Linux(4):使用JMeter对网站和数据库进行压力测试

前言 表面看来,JMeter与本系列课程似乎关系不大,但实际上在后面的很多场景中起着重要作用:如何获知修改了某些代码或者设置之后系统性能是提升了还是下降了呢?商业的压力测试工具LoadRun...

周金桥
2017/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部