【JMeter】压力测试工具的概览与使用

软件工程综合实践第五次个人作业

作业要求:在软件测试章节中,我们介绍了不少VSTS的软件测试工具,请使用一些其他平台上的测试工具,并写博客介绍如何在你的项目中具体使用。

前言:

  第一次看到这个作业要求当真是又喜又悲啊!喜的是另外一门软件测试的课中教了许多测试工具与测试方法,然后在近期还做了小组作业,可以说是一举两得;悲的是本次博客需要利用测试工具测试小组项目成果,但是由于项目并未达到全平台运行的程度,所以暂时完成不了对小组项目的测试。但是作业又不可能不做,所以我今天只好给大家带来其它的测试展示。(本次博客的部分内容来自我与彭ZY同学共同完成的实验报告,具体会在上手过程这一版块进行展开,请允许我偷个懒:(,期末大作业实在是太多了,望体谅。)

认识过程:

Jmeter简介:

  JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
  Jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。使用者可以使用它做性能的图形分析或在大并发负载测试服务器/脚本/对象。
 
上手过程:
 
1)为什么这么做:
  我与我的搭档通过jmeter对百度网做负载测试,使用 JMeter 图形结果和聚合图帮助测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力并估计系统的瓶颈和并发阀值,以期得出科学合理的测试结果。
 
2)配置JMeter运行环境:

JDK:网络下载,并配置好环境变量,因为已经学习过java相关课程,故不在此做相关介绍。

Jmeter:

扫描二维码关注公众号,回复: 6351043 查看本文章

下载解压JMeter压缩包

下载地址: http://jmeter.apache.org/download_jmeter.cgi 解压

环境变量设置:

系统变量新建JMETER_HOME,值为Jmeter路径,如:

E:\Jmeter\apache-jmeter-5.1.1\apache-jmeter-5.1.1

修改CLASSPATH,添加:

%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar

之后打开bin文件夹里的jmeter.bat文件即可运行
 
3)测试过程

1.在jmeter文件目录下的bin文件夹打开jmeter.bat文件运行。

2.右击testplan,选择add-threads(users)-thread group

3.右击创建的用户进程组,add-sampler-http request创建http请求

并设置相应参数:

4.右击进程组找到cookie管理器并创建,在浏览器中找到cookies,填入数据:

完成后添加监视器:右击线程组-add-listener-view results tree后即可运行测试

4)实验数据比对

样本:总共发送到服务器的请求数

平均:总运行时间除以发送到服务器的请求数

吞吐量:服务器每分钟处理的请求数

标准偏差:服务器响应时间变化、离散程度测量值的大小。即数据的分布。

由线性图表可知:吞吐量于12500线程时达到较高的值,20000线程时吞吐量降低,预估秒级并发阈值在15000左右

具体数据对比如下(依次为5000、12500、20000)

 

Label:说明是请求类型,如Http,FTP等请求。
#样本:也就是图形报表中的样本数目,总共发送到服务器的样本数目。
平均值:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。
Median:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
90%line:是指90%请求的响应时间比所得数值还要小。
最小值:是代表时间的数字,是服务器响应的最短时间。
最大值: 是代表时间的数字,是服务器响应的最长时间。
异常%:请求的错误百分比。
吞吐量:这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。
KB/sec:是每秒钟请求的字节数。

继续利用最小值、最大值、异常等数据进行对比,12500与20000线程之间数据差距较大,故推测系统秒级阈值为15000。表现优秀。

总结:

  虽然此次测试在之前已经操作过一遍了,但由于时间久远又相当于重新复习了一遍,温故而知新这话是不假的,我对于软件测试又有了新的见解。并且我再一次认识到:测试工具是个好东西,没有这类工具的话不知道得花费多少人力物力财力,这又一次让我感受到了科技的力量,并且让我坚定了为世界做贡献的决心。另外我也发现平常课程中的活动还是要多多参与的,保不准你这次做的东西下次就有可能用到,这就省去了许多时间(尤其是在期末阶段)。如果只是一味抱大腿的话,则会产生一个不良循环,不利于自身发展的同时还麻烦了他人。

所以相信天道酬勤吧!!!共勉。

猜你喜欢

转载自www.cnblogs.com/wddbll-home/p/10976458.html