JMeter压力测试

临时客串了下性能测试人员,对Web页面进行了压力测试,做个记录,方便以后的查阅。

先用了阿帕奇的JMeter进行的压力测试,后来又使用了loadrunner。今天先整理下JMeter的压力测试。

先介绍下JMeter吧:

Apache JMeter是100%纯java桌面应用程序,被设计用来测试C/S结构的软件(例如web应用程序)。它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Servlets,Java 对象,数据库,FTP 服务器等等。JMeter可以用来模拟一个在服务器、网络或者对象上大的负载来测试或者分析在不同的负载类型下的全面性能。

他的优点有两个,一个是他是纯开源的JAVA程序,因此他支持插件开发,可以根据项目工程的需求进行插件开发,来达到你所需要的最终的结果数据。另一个就是它是免费的对于项目工程来说,节省一笔开资。

JMeter的运行环境以及安装就不说了,网上有很多教程的......自行查阅吧。

接下来就按我的使用过程进行叙述吧。

1、首先进入页面后选项里可以进行语言设置选项,因为第一次接触,所以选择了中文。进入的界面就是这样的。在workBench中右键添加---非测试元件---HTTP代理服务器

进入如下的的界面

2、打开IE浏览器,工具---Internet选项----连接---局域网设置

勾选代理服务器,地址填成localhost,端口号和之前建立的HTTP代理服务器中的端口号保持一致。

3、在JMeter的测试计划中右键测试计划添加—Threads---线程组

如下:

其中名称可以根据你所测试的部分进行命名。

然后说下线程属性,其中线程数就是你需要的并发量,压力测试,就是测试他能承受多大的并发量。而Ramp-Up表示的是每秒钟里启动的数量,循环次数就是指这些线程是否循环执行。

4、打开IE浏览器,输入你要测试的Web页面中需要测试的功能。比如现在测试登陆的功能,进入网址http://www.XXX.com。(根据你项目需求填写)

5、进入JMeter中的HTTP代理服务器,将目标控制器选择你之前建立的测试计划中的登陆,点击启动

然后在打开的网页中输入用户名和密码(我介绍的是登录界面,所以需要登录),然后点击登陆。

6、登陆完成后,进入JMeter的HTTP代理服务器,点击停止。在登陆的
测试计划中会出现自动生成的线程,如图所示。

这些线程则为有关登陆的线程,测试其他的功能模块也用如上的方法。

7、现在,页面中关于登陆的功能已经导入到了JMeter当中。进入JMeter当中进行模拟测试即可。 在测试计划下的登陆线程组当中右键添加---监听器(Listener)---查看结果树(View Result Tree)

如下图:

点击工具栏中的启动按钮(就是回放功能),让JMeter再次运行,有如下结果:

根据页面情况,如果登陆成功,页面会显示出欢迎XX光临,那如果响应数据中有欢迎则表示页面成功的跳转了。

8、通过观看查看结果树中的新生成的线程,查看右面的响应数据,我们可以得到如下

我们可以确定,欢迎出现在/client/shopclient/loginonLogin.action当中。

9、同样的,我们可以在测试计划的线程组当中添加断言并且保存,断言结果,设置如下:

10、断言结果中运行后,出现如下,则表示满足断言中要求。

如果没有找到你所设置的断言内容,则会提示Test   failed。

11、JMeter同样可以模拟多用户同时登陆系统。在登陆线程组中右键添加---Sampler---HTTP请求

在HTTP 
Request中。发送参数,可以将参数信息录入到文件当中,然后将参数的Value值设置为读取文件即可。其调用_StringFromFile函数,如下:

文件格式多为.dat文件,文件内容格式使用标准的TXT文件格式,如下图:

一行保存一条数据,如果一行有多个参数,用逗号分隔。

12、同样的,在线程组当中也可以添加其他的控件,比如添加循环控制器,Loop   Controller等,添加循环次数,然后模拟多次运行。

13、添加结果图

可以根据用户的需求,选择结果图的样式,如果没有用户需要的,还可以下载其他的插件或者自己开发,同样可以满足。其中JMeter提供了Aggregate Graph的柱形图,Graph  Results 线性图等,根据需要去选择不同的结果图。点击运行后做出最终的结果图。

14、结果图:

根据给予的指标,去判断最终的结果是否达标。可以勾选不同的显示图形,生成不同的图形曲线,从而进行判断。

注意

上面部分就是很简单的一些操作,自己具体鼓捣下就能出来。下面列举点自己当初遇到的问题。

1、脚本录制的时候,用JMeter录制脚本的时候,可以看上面图看出来,录制下了action,就是能够触发服务器相应的代码部分,但是当时我操作过程中,发现录制下来的信息没有能够触发服务器相应,这就相当于这个过程没有了意义。当时我的解决办法是换了一个录制工具,我使用了Badboy录制,然后将录制后的记过导入到了JMeter当中,再进行回放,问题解决。

2、线程设置那一块,如果要测试多线程,个人建议,少量的增加,可以以20,30往上面递增。由于是用JAVA编写的工具,工具本身的性能大家都清楚,如果并发线程太大了,小心服务没事,JMeter先挂掉了。基本上100-200,一台机器跑是没有问题的。鄙人曾经跑过1000个线程,很不幸的机器直接挂掉了,如果要跑大数据,建议多台机器进行操作。

3、工具的使用其实挺简单的,性能测试,压力测试里面最主要的部分在于性能分析。根据工具给你提供的数据,你要去分析你对应测试模块的性能如何,并且找出哪块的问题欠妥。如果你本身也是开发人员,找到对应的地方去修改,去优化性能。这才是最主要的问题。

不过么,毕竟是开源的东西,他的弱点就在于结果图上面,你无法定位到是数据库问题,是文件服务器问题,是代码问题等等。所以,这个工具在结果分析上面还是有点欠妥。当然,如果对于大神来讲,可以根据自己的需求,再去开发一些插件去跟踪想要观察的数据,但是开发成本又进入到了项目当中。

所以下次去说说Loadrunner这个工具,这个工具付费的,但是他的结果图相当的完美,完全能够满足你的需求。

时间: 2024-10-10 07:18:09

JMeter压力测试的相关文章

转载:JMeter压力测试入门教程[图文]

JMeter压力测试入门教程[图文] Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件.Java小服务程序.CGI脚本.Java 对象.数据库, FTP服务器, 等等.JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能.另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验

软件测试之Jmeter压力测试

1. 实验要求实验目的安装虚拟机,并安装一套LAMP(Linux+Apache+Mysql+PHP)待测系统,推荐ECShop(http://www.ecshop.com),基于此进行Jmeter压力测试,并在测试后得出Jmeter测试报告,并根据sysstat得出Linux服务器的CIMN(CPU.IO.Memory以及Network)的性能. 1.  实验内容 实验步骤 (1)  安装centos7 Linux系统 (2)  安装xampp(lampp)linux版本 (3)  安装ecsh

软件测试第三次上机——jmeter压力测试

整体目标: 安装虚拟机,并安装一套LAMP(Linux+Apache+Mysql+PHP)待测系统,推荐ECShop(http://www.ecshop.com),基于此进行Jmeter压力测试,并在测试后得出Jmeter测试报告,并根据sysstat得出Linux服务器的CIMN(CPU.IO.Memory以及Network)的性能. 队员分工: 角色1:安装LAMP:Linux服务器(Centos).Apache及PHP 角色2:安装MySQL及ECShop(或类似B/S结构的系统) 角色3

非GUI JMETER压力测试

修改E:\Program Files\jmeter\apache-jmeter-4.0\bin目录下的user.properties文件 jmeter.save.saveservice.output_format=csv 准备好压力测试的脚本,新建存放jtl报告和web报告的目录,确保每次执行脚本前result和webreport下为空 非GUIjmeter实现步骤: cmd切换目录 e: cd E:\Aresource\jmeter\pressure 在此目录下执行脚本,生成的jtl和网页版的

JMeter压力测试,http请求压测,5分钟让你学会如何压测接口!

JMeter压力测试 官网:https://jmeter.apache.org 最新款的jmeter需要java8的支持,所以请自行安装jdk8.这里就不啰嗦了. 可以根据自己的系统下载zip或者是tgz格式的包.下载后就解压出来,找到bin目录,它的启动和配置文件都在这个目录 进入之后,只需要双击适合自己系统的启动文件,就可以运行jmeter,是不是很简单.(前提是你要装好jdk8,可以用命令 java -version 来看一下有没有安装好) 这个Test Plan就是你的测试计划,可以理解

jmeter 压力测试

一.什么是压力测试 压力测试:测试系统在不同压力情况下的效率状况以及系统可以承受的压力状况. 举例说明:5000人同时到窗帘系统下单购买窗帘时,系统运行速度或者处理效率是否变慢或者系统是否会崩溃. 二.压力测试工具 1. LoadRunner LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试.通过使用 LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速

Centos6.5安装jmeter压力测试工具

1.安装JDK #wget http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.tar.gz #tar zxf jdk-8u111-linux-x64.tar.gz -C /usr/local/ #vim /etc/profile    //新建JAVA环境变量 export JAVA_HOME=/usr/local/jdk export JRE_HOME=/usr/local/jdk/jre exp

Jmeter压力测试(简单的http请求)-实例

服务端系分提供的某接口样例为: 评估后可采用使用jmeter进行压力测试的步骤为: 启动jmeter:在bin下点击jmeter.bat,运行jmeter 2. 创建测试计划: 默认启动jmeter时会加载一个测试技术模板 3. 保存测试计划:修改名称为http_demo,点击保存,选择保存路径 4. 添加线程组 右键左边树中的测试计划"http_demo"节点,"添 加"--->"线程组",添加一"线程组" 添加成功后

jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)

JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter前要先下载jdk包,配置java环境.(参见Java环境配置教程) 配置完成后在运行窗口检查一下java -version确定java环境配置完成. 一.利用badboy进行自动脚本录制 下载BadboyInstaller-2.2.5.exe 并安装 下载地址:http://download.csd