一般的公司都想知道自己产品的性能瓶颈和以及提升性能,以期大流量来了还撑得住。其实性能测试很难,难点在你不知道性能要达到怎样的需求。难点在于你没有实际的环境场景给你测试,总不能给线上环境你测试吧?
难点在于找性能瓶颈,即便找出来了,调优也是一件棘手的事情。一般公司的性能测试都是在测试环境下模拟和估算。(当然大公司不是这么干。淘宝双11,12306节假日的超大流量这么干绝对死翘翘)
如果一个团队能走如下流程
那么测试人员就轻松多了,它只需要设计场景以及执行,并能找出瓶颈,并协助调优。
如下图,我们设计的并发数,进程数乘以循环次数,相当于设计了100个用户在同时登录
测试结束后,生成本次测试的报告。
生成报告又分为非GUI和GUI报告。
JMeter3.0版本发布后,开始支持动态报表报告。让测试人员编写性能测试报告更加容易。
jmeter -n -t test.jmx -l result.jtl -e -o /tmp/ResultReport
结果如下:
参数说明:
-n: 非GUI模式执行JMeter
-t: 执行测试文件所在的位置
-l: 指定生成测试结果的保存文件,jtl文件格式
-e: 测试结束后,生成测试报告
-o: 指定测试报告的存放位置
-l -o指定的文件及文件夹,必须不存在,否则执行会失败
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】
将已存在的测试结果文件,生成测试报告
jmeter -g result.jtl -o /tmp/ResultReport
参数说明:
-g: 指定已存在的测试结果文件
两种方式,其实最终都依赖生成的测试报告。双击报告文件夹中的index.html即可查看报告。
GUI报告就是聚合报告,可以导出来
然后计算
从报告中计算出
如100个用户2s内登录 总的执行的时间=最后一个线程启动的时间+最后一个线程持续的时间-第一个线程启动的时间
throughput=总的线程数/持续时间=100/4.524=22.1个线程/sec
需要了解的一些概念
1、Average Transaciton Response Time(事务平均响应时间)
“事务平均响应时间”显示的是测试场景运行期间的每一秒内事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。
例:随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势。
2、Transactions per Second(每秒通过事务数/TPS)
“每秒通过事务数/TPS”显示在场景运行的每一秒钟,每个事务通过、失败以及停止的数量,使考查系统性能的一个重要参数。通过它可以确定系统在任何给定时刻的时间事务负载。分析TPS主要是看曲线的性能走向。
将它与平均事务响应时间进行对比,可以分析事务数目对执行时间的影响。
例:当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈。
3、Hits per Second(每秒点击次数)
“每秒点击次数”,即使运行场景过程中虚拟用户每秒向Web服务器提交的HTTP请求数。
通过它可以评估虚拟用户产生的负载量,如将其和“平均事务响应时间”图比较,可以查看点击次数对事务性能产生的影响。通过对查看“每秒点击次数”,可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。
4、Throughput(吞吐率)
“吞吐率”显示的是场景运行过程中服务器的每秒的吞吐量。其度量单位是字节,表示虚拟用在任何给定的每一秒从服务器获得的数据量。
可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。
测试指标
对于B/S架构的软件,一般会关注如下Web服务器性能指标:
Avg Rps:平均每秒钟的响应次数=总请求次数/秒数;
Avg time to last byte per terstion (mstes):平均每秒业务脚本的迭代次数;
Successful Hits:成功的点击次数;
Hits Per Second:每秒点击次数;
Attempted Connections:尝试连接数;
Throughput:吞吐率;
对于C/S架构的程序,由于软件后台通常为数据库,所以我们更注重数据库的测试指标。
User Connections:用户连接数,也就是数据库的连接数量;
Nunber of Deadlocks:数据库死锁;
Butter Cache Hit:数据库Cache的命中情况。
注意:
在实际性能测试过程中,需要观察的性能指标并不限于以上提到的这些指标,需要根据实际情况作出选择和权衡,有些指标如CPU占用率、内存占用率、数据库连接池等,也有非常重要的参考意义。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。