效能測試模擬真實負載是比較困難的。效能測試與真實環境的對比,通常有這樣一些點:
1.客戶端展現。如果是web應用,客戶端使用瀏覽器展現的,則一些的壓力測試工具都不具備展現的功能,也就是說,只是模擬傳送http請求到接收請求,而瀏覽器對html內容進行渲染的時間,是無法模擬的,這很可能是真實環境體驗現測試結果不相同的地方。客戶端展現要與真實環境相同,必須單獨進行前端效能的分析。
2.網路速率。效能測試時通常在區域網環境中,而真實的網路使用者來自於全國甚至世界各地,其網路情況不一致,而且有很大的偶然性。除了對壓測工具所在的機器進行一些網路限速之外,很難完全模擬到真實的網路負載情況。
3.軟硬體配置。軟體配置比較容易做到與真實環境一致,但硬體配置通常比較難做到。像線上使用的一些負載均衡機器或者路由裝置比較昂貴,不可能在測試環境採用完全一樣的拓撲和集群,當然這些對測試結果影響通常可以分析到,不會有很大偏差,但這是乙個無法完全與線上保持相同的點。
4.資料分布。資料分布要做到與線上一致有3個難點,1是對新應用而言,根本沒有線上資料,因此無從模擬,只能手動造資料,所以無法跟線上一致;2是即使是老的功能,線上資料因為商業機密等原因也未必能直接拿來作為測試資料;3是使用者的訪問路徑,這點很難與線上做到一致。功能測試尚不能覆蓋掉所有的使用者操作路徑,何況效能測試?
以上四點,都是問題。因此效能測試很多情況下只能作為參考,用來發現明顯的效能問題。如果要做到100的準確,還是要做線上的即時監控才行。
一般效能測試我會考慮4個方面,1、系統本身效能,2、網路條件,3、軟體環境 4、硬體條件。
設計效能測試方案時,首先確認,你這個方案主要的目標是什麼,然後就會有根據的進行測試設計了。
例如, 有個效能需求是:測試系統某個功能的大資料量(資料量級別)的查詢速度<3s,或者多使用者(100使用者)同時查詢時的查詢速度<3s。 其實這個需求的條件是不明確的。 這個只有條件1, 對於2、3、4條件都沒有明確的規定。 那麼這個就需要你去補齊這些條件資料。
條件4:伺服器硬體條件,這個在購買伺服器時,對於硬體指標能達到什麼級別,都會有乙個比較明確的範圍的。如:硬體記憶體可以滿足多少事務處理,處理事務的速度等等
條件3:伺服器軟體環境,如中介軟體,資料庫等,是否有連線限制,資料庫本身效能能否滿足足夠的大資料量儲存等。
條件2:伺服器的網路上下行速率如何,客戶端的網路上下行速率又如何,網路條件是很能影響測試結果的乙個條件。
那麼,對於上面的效能需求,因為你需要驗證的是系統本身的效能是否達到要求。那麼條件2、3、4是可變的。
簡單的乙個方案就是:
條件2 條件3 條件4
1 a c e
2 b d f
3 a d f
4 b c e
5 a d e
6 b c f
滿足上面的一行條件,然後去驗證 上面的效能需求是否達到要求,並且還要延伸做的是,在該條件下,能該效能指標能最大能達到什麼數值。
然後對結果進行對比分析, 其實效能測試的方案設計及過程並不難,難的是結果的對比分析,這個需要靠經驗和對效能指標的敏感度才能很好的體現。
以此類推,對於其他單個條件的,多個條件的效能測試,同樣可以按照這個嘗試。
當然,效能本身就是乙個受很多因素影響的,簡單的分類肯定不能滿足實際的複雜程度,
但是個人覺得,我們把實際複雜的場景合理的簡單化,其實對系統的發展是有幫助的
效能測試 效能環境與資料
效能環境,也是困擾效能測試人員很重要的乙個問題。如何模擬線上真實的環境?如何在測試環境進行的效能測試結果,能準確的反應到生產線上去?先聊下我們的做法。首先確認線上的網路拓撲圖。比如 左邊是線上環境,線上一般是分布式集群部署。比如使用者訪問伺服器a,而伺服器a需要依賴到伺服器b和c提供的服務,而伺服器...
loadrunner 效能測試環境搭建
1.在效能測試時,為了保證測試結果的資料客觀公正,每一次測試時的軟體環境必須保證是相同的,所以在測試前對軟體環境進行備份是非常重要的工作。可以用ghost進行映象,避免前一次的測試快取和磁碟碎片對下一次測試造成影響。2.在效能測試時,需要大容量的資料,同時也要對這些資料做好備份工作。可以利用工具生成...
接近更真實 關於網路測試環境的困惑與反思
接近更真實 關於網路測試環境的困惑與反思 吳疌 作為運營商的一名測試人員,筆者參加過很多個測試專案。但似乎大多數的測試都不是令人心情愉快的過程,尤其是大型測試中常會出現令人頭疼的問題,使得廠商的技術人員和測試工程師十分沮喪和疲憊。那麼,為什麼曾在研發實驗室裡測試多次的裝置在第三方實驗室的驗證性測試時...