软件测试工具介绍
软件测试工具介绍
目录:
前言
JMeter 介绍
JMeter与LoadRunner比较
JMetet基本使用
前言
在第十四周的课堂上,王文娟老师发布了通过搜索资料和自学,在个人博客上介绍软件测试工具的任务,因此,这是我为软件工程综合实践专题课程第四次个人作业所写的博客。
编写此博客的心得:
本次介绍的软件测试工具为JMeter,JMeter 是一个100%纯Java桌面应用,用于压力测试和性能测量。在使用过程中我发现,JMeter的一个很大的亮点在于,它能够通过让我们用断言创造测试脚本来验证我们的应用程序是否返回了我们期望的结果,从而帮助我们回归测试我们的程序。为了最大的灵活性,JMeter 允许我们使用正则表达式创建断言。
在这个实验中,我遇到最大的困难在于Apache JMeter内Remote File与Local File的路径填写。解决方案是我翻阅了十几篇文章,最后在一篇博客上找到了解决方案。从前几次的原型设计,到学习githhub,从git上传下载代码的学习,到这次的软件测试的个人作业,我都感受到了这门课程贯穿了整个开发的需求过程,从需求的找寻到最终成品的测试和展示都有迹可循,明白了真正成功的一款软件在真正发布之前所需要做出的所有测试和努力。这是十分有利于我学习的。
JMeter 介绍
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
JMeter与LoadRunner比较
JMeter 是一款开源(有着典型开源工具特点:界面不美观)测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细;很它的优点也有很多:
- 开源,他是一款开源的免费软件,使用它你不需要支付任何费用,
- 小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java开发的工具。
- 功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。因为它的开源性,当然你也可以根据自己的需求扩展它的功能。
两者最大的区别:jmeter不支持IP欺骗,而LR支持。
JMeter基本使用
测试配置:
Windows7 i5-4590CPU @ 3.30GHz;RAM:8GB;64位操作系统
JDK 1.8
测试软件 :Apache JMeter 3.0
1、FTP服务器建立过程

用户名和密码建立

2、1秒1线程访问额



配置FTP请求缺省值

配置两个FTP请求,分别为get和put。

get请求,即从服务器上下载软件。Remote File的内容test1.txt默认存储在ftp服务器设置的根目录下,该文件必须是已经存在的文件,且该文件中最好是有数据的,否则会报错。Local File是本地的文件存储地址。

put请求,即从本地上传文件到服务器。Remote File的内容test2.txt是一个服务器中没有的文件。Local File是本地已存在的文档。

创建监听器:聚合报告,用表格查看结果,图形结果。



3、1秒30线程访问额

其他配置过程相同
4、1秒50线程访问额

其他配置过程相同
5、1秒100线程访问额

其他配置过程相同
6.、性能测试结果分析
1秒1线程访问额
get:完成了1个sample,平均响应时间为57ms,响应时间的中值为57ms,所有sample中90%的sample的响应时间都小于57ms,最小响应时间为57ms,最大响应时间为57ms,错误率为0%。
put:完成了1个sample,平均响应时间为9ms,响应时间的中值为9ms,所有sample中90%的sample的响应时间都小于9ms,最小响应时间为9ms,最大响应时间为9ms,错误率为0%。



1秒30线程访问额
get:完成了30个sample,平均响应时间为28ms,响应时间的中值为17ms,所有sample中90%的sample的响应时间都小于62ms,最小响应时间为7ms,最大响应时间为97ms,错误率为0%。
put:完成了30个sample,平均响应时间为31ms,响应时间的中值为20ms,所有sample中90%的sample的响应时间都小于64ms,最小响应时间为12ms,最大响应时间为92ms,错误率为3.33%。



1秒50线程访问额
get:完成了48个sample,平均响应时间为48ms,响应时间的中值为32ms,所有sample中90%的sample的响应时间都小于103ms,最小响应时间为7ms,最大响应时间为120ms,错误率为35.42%。
put:完成了48个sample,平均响应时间为45ms,响应时间的中值为28ms,所有sample中90%的sample的响应时间都小于111ms,最小响应时间为10ms,最大响应时间为128ms,错误率为47.92%。



1秒100线程访问额
get:完成了97个sample,平均响应时间为38ms,响应时间的中值为26ms,所有sample中90%的sample的响应时间都小于83ms,最小响应时间为9ms,最大响应时间为103ms,错误率为69.07%。
put:完成了97个sample,平均响应时间为31ms,响应时间的中值为24ms,所有sample中90%的sample的响应时间都小于79ms,最小响应时间为6ms,最大响应时间为98ms,错误率为88.66%。



7、图表一览
注:Label1代表1秒1线程访问额;Label2代表1秒30线程访问额;Label3代表1秒50线程访问额;Label4代表1秒100线程访问额。




浙公网安备 33010602011771号