软件测试工具介绍
目录:java
前言git
JMeter 介绍web
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
一、FTP服务器创建过程
用户名和密码创建
二、1秒1线程访问额
配置FTP请求缺省值
配置两个FTP请求,分别为get和put。
get请求,即从服务器上下载软件。Remote File的内容test1.txt默认存储在ftp服务器设置的根目录下,该文件必须是已经存在的文件,且该文件中最好是有数据的,不然会报错。Local File是本地的文件存储地址。
put请求,即从本地上传文件到服务器。Remote File的内容test2.txt是一个服务器中没有的文件。Local File是本地已存在的文档。
建立监听器:聚合报告,用表格查看结果,图形结果。
三、1秒30线程访问额
其余配置过程相同
四、1秒50线程访问额
其余配置过程相同
五、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%。
七、图表一览
注:Label1表明1秒1线程访问额;Label2表明1秒30线程访问额;Label3表明1秒50线程访问额;Label4表明1秒100线程访问额。