軟件性能測試的問題分析和總結[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.改程序,直接改存儲模式為大寫的數據。
文章來源于領測軟件測試網 http://www.kjueaiud.com/