使用JMeter性能测试框架对FTP服务进行测试实践

软件测试工具,期末的一个小小的实训考核,参照官方文档http://www.testclass.net/jmeter/jmeter-doc-07,做了一点点东西,非常简陋,大佬路过了千万忍住别怼我,我不接受(~ ̄▽ ̄)~ !!。

测试过程要求

参考testclass.net网站的相关文档,配置FTP及JMeter界面的对话框及参数输入,逐一实现如下过程:

配置一:用Serv-U软件架设FTP服务,要求:

1.局域网内部或本机环境,使用普通PC机或笔记本运行,尽可能关闭无关进程和杀毒软件;
2.涉及帐号及目录、文件命名以本人姓名的完整拼音构建,必要时在末尾加上1、2、3等数字作为区分。如张三命名为zhangsan1、zhangsan2……;
3.注意Serv-U软件的默认属性设置参数,必要时进行调整,以免与JMeter的操作产生冲突。
注:此配置不属于测试重点,不用过于详细的操作记录和描述。
(配置一的详细实现过程,移步我刚刚发布的另一篇博客“Windows中IIS和Serv-U两种方式搭建FTP服务http://www.javashuo.com/article/p-nseftzsk-tn.html”,这里不在详细赘述如何实现)

配置二:在JMeter中创建FTP测试计划,要求:

1.参考http://www.testclass.net/jmeter/jmeter-doc-07文档,复现其完整过程,包括线程组、FTP请求、FTP默认请求和用表格察看结果等环节;(相应的参数注意按配置一中第2点要求进行修改)
2.设置一组尽可能高的请求数,执行测试并保存FTP运行高负载时的信息;
3.找到FTP运行的极限压力请求数。(备选,不同机器性能差异比较大,注意被测试机器的保护)

配置三:JMeter的FTP测试还有多种运用实例,进行其他性能测试或添加自动化脚本、断言、可视化等组件,根据所掌握的知识选择实现它。(此配置为加分项,内容不限)

1.FTP性能测试可以通过几个用例进行,包括:服务器所能连接的最多客户端、上传或下载的最大文件大小、上传或下载的文件大小为空、客户端一次下载多个文件、客户端一次下载多个文件、客户端一次向服务器上传多个文件、客户端从服务器下载的文件太大,磁盘不足等;
2.多用户等配置参数的脚本化、断言脚本;
3.使用Aggregate Graph等可视化组件(http://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Graph)。

下面开始做题:

1.测试环境
Serv-U、win10、谷歌浏览器、jmeter

2.测试所涉及的知识点
JMeter是一款Java桌面应用程序,它的用户界面采用Swing Java API实现。基于这两点,JMeter是一个跨平台工具,能够运行在任何安装了Java虚拟机的操作系统(Windows, Linux, Mac)的设备上。
它的框架支持并发和多线程或者线程组的执行。这对于配置负载测试和压力测试非常有用。它是可扩展的,提供了大量的可用插件。
负载测试: 这类测试使系统或者应用程序在预先设计好的极端场景下测试运行。这类测试用来评估系统或者程序在极端条件下的行为。
性能测试: 这种测试被用来检测系统的性能表现,包括特定情况下,系统的响应能力和稳定性。
压力测试: 这类测试通过载入更多的外部资源,并使系统组件超越其所设定的能力范围,试图使系统挂掉。

配置一:用Serv-U软件架设FTP服务

(配置一详细过程可看我另一篇博客,这里简略带过!)
一、新建域:
在这里插入图片描述
二、新建用户:
在这里插入图片描述
在这里插入图片描述
浏览器查看访问ftp结果:
在这里插入图片描述

配置二:在JMeter中创建FTP测试计划

一、添加并配置线程组:
在这里插入图片描述
二、添加默认FTP请求配置
(添加–配置元件—FTP默认请求)
在这里插入图片描述
三、添加两个FTP请求
第一个ftp(get)请求(添加—取样器—FTP请求):
在这里插入图片描述
第二个ftp(get)请求(添加—取样器—FTP请求):
在这里插入图片描述
四、添加一个监听器浏览/保存测试结果(请求ftp下载成功)
选中线程组元件,添加在表格查看结果(添加→监听器→在表格查看结果)
在这里插入图片描述
设置一组较高的请求数,执行测试并保存FTP运行高负载时的信息
这里我设置10个用户,3个get请求,重复3次,所以总的请求数是(10个用户)x(3个请求)x(重复3次)=90
在这里插入图片描述
FTP默认请求:
在这里插入图片描述
添加三个FTP请求:
在这里插入图片描述
执行测试并保存FTP运行高负载时的信息
选中线程组元件,添加在表格查看结果(添加→监听器→在表格查看结果)
在这里插入图片描述
找到FTP运行的极限压力请求数。
这里,我通过不断增加高请求数线程组中的线程数,来查找FTP运行的极限压力请求数
开100个线程,成功,能正确执行:
在这里插入图片描述
经过我自己的测试开900个线程时也能完全正确执行,当我开到1000个线程时,出现执行失败的情况,如下:
900个线程:
在这里插入图片描述
1000个线程:
在这里插入图片描述
在这里插入图片描述
则我的这台机器极限压力请求数在8100至9000之间。

配置三:其他性能测试添加自动化脚本、断言、可视化等组件

一、响应时间图

在上面高的请求数基础上设置时间间隔10ms的响应时间图
在这里插入图片描述

二、添加断言和结果树

给第一个请求添加响应断言和一个单独的结果树,断言测试响应字段http响应代码,并自定义响应失败消息“error http code”
添加响应断言:
在这里插入图片描述
响应断言配置http响应代码,并自定义响应失败消息“error http code”:
在这里插入图片描述
添加一个单独的结果树:
在这里插入图片描述
结果如下,断言通过:
在这里插入图片描述

测试结论

进行每一个JMeter测试计划的第一步是添加一个线程组元件。线程组告诉JMeter你想要模拟的用户数量,用户应该发送请求的频率,以及他们应该发送多少个请求。所有的 FTP 请求将发送到相同的 FTP 服务器, ftp.domain.com测试计划中的最后一个元件是 监听器。这个元件是存储所有FTP请求的结果到文件并展示可视化数据模型
响应时间分布图
在这里插入图片描述
聚合报告
在这里插入图片描述
图形结果报告
在这里插入图片描述

关于博主

相比我之前的博客,这篇很简略并没有详细到每一个小步骤,看到这篇博客的人,见谅!今天我无耻的写了两次关于博主了,无颜面对江东父老了…我爱中国,今年一定要顺利些!