软件性能测试的问题分析和总结[1] 性能测试工具
今天给部门做了性能测试分享,内容讲的比较泛泛,人还有点小紧张,还需要多学习怎么分享才能取到好的效果,现在仅摘其中的一部分,分享出来,内容不一定全面~~仅作交流
常见的性能问题 软件测试
1.最重要的性能问题是应用程序设计及与数据库的交互
应用程序设计:好的应用程序设计可能会获得优秀的响应时间(但不能确保),但差的应用程序设计很难获得好的性能。差的性能设计比如:不管怎么操作,让用户检索出大量结果集(比如50M)的程序运行效率不会高,大量数据的延迟会很明显。
2.数据库设计
物理和逻辑设计,涉及非常多的方面,俺也不懂,举一个简单的例子:一个测试问题,大数据量下列表展现(多表联合查询)问题不能满足性能需求。DBA修改了数据库设计采用汇总表去展现列表(单表查询),汇总表也方便创建索引。
3.参数调整
4.硬件环境(包括网络对性能的影响会比较大)
5.其他,因素很多。
就几个常见的性能问题,举例展开,性能问题非常多,也总结不全面,但可以经常回顾,分类汇总,逐步完善性能问题总结这部分工作。
一、数据库交互过多
现象:单个操作发送给数据库sql的数据量过多,数据库延迟。
发现方法:采用监控工具分析程序与数据库的交互(sql数量和响应时间),比如P6spy及类似工具。
数据库交互与程序设计方式息息相关
建议使用P6spy帮助去做数据库交互分析,截获页面操作的sql。P6spy使用具体请参考
http://dodomail.javaeye.com/blog/117934
http://blog.csdn.net/hennylee/archive/2007/03/07/1523410.aspx
http://www.blogjava.net/itstarting/articles/48969.aspx
二、列表效率低
列表查询未使用索引。
查询全部字段,而不是所需字段,带来额外的I/O和网络负担。
分页算法效率低,甚至未使用分页。
1.查询未使用索引
此问题比较常见,通过查看sql的执行时间和I/O。查看查询计划可以清楚看出sql是否索引查询,或者全表扫描
select ID 。。 from B where xxx
2. 比如 Select xxx from where UPPER(name)=‘A’
在字段上使用函数,导致不使用索引,虽然Oracle是有基于函数的索引。更好的方式 a.update现有数据 b.改程序,直接改存储模式为大写的数据。
文章来源于领测软件测试网 https://www.ltesting.net/