性能测试中,我碰到的8个常见问题总结
性能压测中我们需要明白以下几点:1、好的开始是乐成的一半,前期的准备非常重要;
2、过程中,关注每个细节,多个维度监控;
3、在调优中多积聚经验;
4、对结果负责,测试陈诉要清楚易懂,寻求数据的正确性。
01
如何分析性能数据(测试结果)
主要从吞吐量,错误率,资源监控数据,比如一个接口的处理能力为100个/s,高于需求的期望值。
错误率为0.001%,期望值为0.01%,最高cpu占用率不超70%。以上指标都符合期待值,那么通过提取这些关键数据就可以记录下来,作为测试的准出标准。
02
如何快速定位到性能阈值?
eg:每秒处理事务数达到最理想的值,有没有什么本领?
对于一个新的压测单元,发起先设置一个线程数较小的初始值,徐徐增长线程数来观察事务的处理能力的变化。直到达到性能拐点(处理能力下降,相应时间明显增长)。
03
线程数是压的越多越好吗?压到多少线程公道?
线程数受压力产生气的CPU和内存影响较大,并且Jmeter是基于相应原理工作(一个线程在发出哀求并得到应答后才会继承发出下一个哀求)。
举个例子,Jmeter(单台)不能在服务器只能处理100个哀求每秒的情况下,提供200QPS的压力,一样寻常情况下发起不高出500,默认从100线程开始施压,根据实际处理能力来调整线程数巨细。
04
压测一连时间是非有什么区别?压测一连时间长,保证效果更靠近期望值?设置压测时间较短时的目的是什么,为了测高并发?
这个问题比如一个问卷调查,你调查的范围越大,取样更广泛得出的结论才更靠近均匀值(统计年收入,结果只统计了张三跟马云)。
一样寻常情况下权衡单个接口的指标,时间不需要太长,因为涉及大量的数据读写利用,但至少不低于5分钟。假如能保证长时间运行稳固的情况下,取样时间可以相对减小。
05
均匀相应时间为什么越随着时间的增长,越来越长?除了队列阻塞,还有其他缘故原由吗?
大多数情况下是服务端的处理能力下降导致,在较大压力下,CPU和内存资源长时间被占用无法释放。
06
性能测试通常需要反复测试几轮才能达到预期的结果,有没有硬性标准?
完成变动(优化)后计划所列出的各项测试内容,测试结果稳固,数值无较大浮动(一样寻常实用于末了一轮,已无优化空间)。
07
测试情况是否存在网络瓶颈如何确认?
一样寻常情况下需要压测机和服务器在同一局域网内,走内网带宽,假如走外网很容易达到网络瓶颈。
这个时候,可以:
[*] 找运维人员或机器所属负责人进行确认;
[*] 直接复制文件传输到另一台服务器 检察网速是否达到内网带宽上限
scp -r -P 端标语 root@123.123.123.123:/root/,如内网带宽为100M时,可传输的最大网速为 12M/s 左右,如传输速率只是2M/s以下 可能不在同一网段,一样寻常也满足不了压测传输对网速的要求。
08
我们怎么选择性能压测工具?
[*] Loadrunner
[*] 商用,支持各种协议,例如http、tcp、ftp等;
[*] 支持多种并发模型,C脚本本身性能较高;
[*] 臃肿,贫苦。
[*] Jmeter
[*] 开源、使用方便;
[*] 基于Java,可扩展,支持模型较单一,本身性能受限于同步等待以及java本身;
[*] 比较机动,可以自己编写符合自己要求的脚本,二次开辟更适合我们服务端测试。
[*] 其他
[*] Apache bench:工具小巧简单,上手学习较快;
[*] Wrk :性能超级强,某些bench测试使用;
[*] Grinder python等等,还有许多。
具体使用联合公司项目以及自己的优势来选择,我个人喜欢用Jmeter。
末了感谢每一个认真阅读我文章的人,投桃报李总是要有的,虽然不是什么很值钱的东西,假如你用得到的话可以直接拿走:
https://i-blog.csdnimg.cn/blog_migrate/71ed9bf68d92752ac092f1575fa2afc5.png
这些资料,对于【软件测试】的朋侪来说应该是最全面最完整的备战堆栈,这个堆栈也伴随上万个测试工程师们走过最艰难的路程,渴望也能帮助到你!有需要的小同伴可以点击下方小卡片领取
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]