移动性能测试 小菜的性能日记 4 (合格的性能测试报告)

心向东 · 2016年01月06日 · 最后由 annula001 回复于 2023年11月10日 · 10019 次阅读
本帖已被设为精华帖!

测试报告风波

小菜:大鸟,最近的那个 XX 接口测试完成了,发现了一个性能问题,我感觉自己萌萌哒😆
大鸟:😄哦?让我看看你的报告。

XX 接口 12 小时稳定性测试中,TPS 从 78 下降到了 18,应用服务器 CPU 从 50% 飙升到 95%,存在性能问题

TPS:

应用 CPU:

大鸟:😰 你这报告给项目组发过去有什么意义?项目怎么要怎么优化呢?
小菜:我只是一个测试人员,发现 BUG 就可以了,优化是开发的事😆
大鸟:我要是开发肯定 neng(第 4 声)死你 信不信😤 ?来来来 把测试数据拿来 我来帮你分析一下。

12 小时稳定性测试时,XX 接口在执行 2 小时后 CPU 瞬间上升并且 TPS 急剧下降。

应用 CPU:

TPS:

CPU 上升后 Sys% 占用部分(红色)明显上升,怀疑系统处理部分压力上升,我们继续查看 IO 和 net 相关数据,发现系统 IO Write 在此时上升明显。

NET:
无图,待补
IO:

再登录到应用服务器,查看磁盘情况 发现 App-log 磁盘已满。

磁盘空间:

此时可以初步判定问题原因为日志盘符在大数据量交易下爆满,导致 IO 频繁降低了应用的处理能力。

小菜:哈哈😄原来是磁盘空间满了导致性能下降了啊,这下可以交差了。
大鸟:交差个鬼啊💢,分析还没有结束呢。

XX 接口在执行 2 个小时即执行 2*3600*70=504000 笔交易后,产生了 20G 的交易日志量,日志磁盘空间不足后 TPS 下降了 70%, 且 CPU 使用率 达到 95%。
1 笔交易的日志产生量大约为 40KB 左右, 建议项目组根据生产实际交易量调整日志策略。

大鸟:这样你的测试报告差不多才算合格了。一份好的性能测试报告不仅要标注缺陷问题,更要对产生的问题进行深入分析,并提出相应的解决方案。
小菜:😢 这才算合格啊...看来我的性能测试道路还很长呢。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 53 条回复 时间 点赞

写的浅显易懂. 好文. 小故事大道理.

期待

期待!

赞,期待

赞,这个例子举得好。确实碰到过。

期待啥 都写好了.....

棒棒哒

开了个会回来就看到 4 出锅了 好激动 谢东哥

期待,一个合格的测试是解决了几个 bug,而不是发现几个 bug(monkey 说的)很对

不错,很棒

—— 来自 TesterHome 官方 安卓客户端

东哥威武.....期待

还没完,稳定性还需要在跑下,最好加点空间或增加个自动清理日志的脚本。

#14 楼 @among29 没必要再跑一遍 生产环境 有自己的机制 ,只要给出 1 请求生成多少 kb 日志就可以了,架构师会去想解决方案的

#15 楼 @dongdong 这个清理,只是为了跑稳定性的时候需要,测试环境用就可以了。

当然如果觉得 产生的交易量不够,那么就需要加大硬盘空间再来一次

#16 楼 @among29 不建议自己增加这种额外动作 我们要真实的反映压力表现,万一你的清理脚本有问题或着因此产生奇怪的问题,你的报告会收到质疑。如果要清理也只在测试前做一次就够了

请问用的什么工具生成的图?看起来很不错。。

#19 楼 @lose nmon 的分析软件 excel 写的

都看了几遍了。

期待下一起

写的不错

文章不长,但内容还是很充实的,个人觉得这个对于有一定工作经验或者从事过相关工作的人 看更好点,如果可以的话,建议可以写点原理,让新手性能也可以一样效果。

很有趣 !

—— 来自 TesterHome 官方 安卓客户端

如果是一个很简单的性能问题,确实需要这样分析,如果很复杂,需要和开发一起分析。当然,无论是哪种,都需要详尽的报告作为支撑。

#26 楼 @syyk2009 是的 测试的任务是尽量帮开发定位到某段代码 甚至某行代码,后面就是开发的分析工作了.像小菜那样只是抛出问题不做分析那是会被开发唾弃的

赞,期待

期待东哥出书。。。。

很浅显易懂 受教了,能帮助开发解决 bug 的测试才是合格的测试。

—— 来自 TesterHome 官方 安卓客户端

干货,上次我们就遇到这样的问题了,查看半天都不知道什么原因。

颠覆了我对性能测试的理解,谢谢

谢谢分享~

不错。谢谢分享

~(≧▽≦)/~

遇到过,看到这篇文章更加深了记忆

东哥 v5,浅显易懂

不错,东哥继续!

性能测试需要考虑的东西太多面了,设计脚本,场景设计,硬件资源等等。 而且还得考虑压测环境数据情况,这个也是非常重要的。 例如你是 get 拿数据请求,从 100 个数据中拿 10 个和从 100W 个数据中拿 10 个还是很有差距的。 你举得例子也经常出现,例如我曾经把缓存压爆了。就是场景没提前跟开发沟通,照成。所以设计时,需要多沟通。

写得不错!生动有趣

#20 楼 @dongdong 这个工具生成的 excel 文档可读性太差,nmon 监控原生的结果文件是.nmon,直接使用这个工具就可以打开 http://zfy421.iteye.com/blog/2191839

#41 楼 @zfy421 数据分析不在乎什么可读性,最后反正是要整到报告里的,而且 excel 有个好处就是基本只要是 windows 都能运行。

期待下篇日记

真的不错,通熟易懂

期待下一篇~好赞

谢谢分享!

谢谢分享,期待下一篇

这次真的是萌萌哒了,写的通俗易懂,耐人寻味。

49楼 已删除

@dongdong ,请问你压力工具用的 loadrunner?cpu 怎么收集的呢,我看曲线图很好

心向东 [该话题已被删除] 中提及了此贴 07月10日 10:39
心向东 [该话题已被删除] 中提及了此贴 07月10日 10:39
心向东 [该话题已被删除] 中提及了此贴 07月10日 10:39
心向东 小菜的性能日记 1 (关于 thinkTime 的思考) 中提及了此贴 04月01日 20:45

疯狂打 call~~

东哥威武,学习了

再来几期

心向东 小菜的性能日记 4 (合格的性能测试报告) 中提及了此贴 01月11日 18:34

我也想要一个大鸟

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册