负载测试与压力测试的区别
以下內容引自: http://blog.csdn.net/shangyichen/article/details/5438528
什么叫壓力測試(Stress Testing)
原創?2010年03月31日 19:15:00?
什么叫壓力測試(Stress Testing)
?
在測試兩個字前面加上一個限定詞,就變成了很多測試。例如:壓力測試、負載測試、性能測試、功能測試等等。但究竟什么是壓力測試,初學者往往望文生義,都能說上一兩句。是啊,誰還不懂“壓力”是什么意思?誰還沒經歷過壓力?然而,壓力測試的真正含義和目的,它和其它測試(特別是負載測試)的區別,不是所有的軟件工程師都是掌握的。
按照Ron Patton在其《Software Testing》一書中的定義,壓力測試是一種破壞性測試,它故意讓軟件在比較少的資源環境下運行,如低內存、小硬盤、慢CPU上運行,考驗程序直至程序無法運行,從而發現軟件缺陷。用一句形象的話來比喻,就是讓軟件在饑餓狀態上運行。
下面有一個例子。
一般地,軟件應生成運行日志,當系統出現故障時能根據日志快速診斷出問題所在,或用于操作的責任追蹤和審計,這些日志文件可能記錄在本地磁盤上,工程師如想到要這一步,即系統運行情況要記錄在日志里,那么他就比完成學校老師作業進了一步。日志文件隨著時間的推移不斷膨脹,總有一天當前磁盤不夠用了,無法記錄新的日志,軟件設計者要想辦法解決這個問題,解決這個問題有兩個辦法:一是提示用戶系統無法記錄新的日志,讓用戶判斷有不要中斷系統運行;二是按照字母順序,將日志記錄到下一個磁盤,如D盤或E盤或F盤,如此等等。軟件工程師如能想到這一步,那么他又進了一步。如果將后續的D、E、F等所有的盤都用完了,再提醒用戶,或直接終止系統運行。
上述邏輯可用下面的偽程序表示:
?
?
?
| 1???????If disk C has enough available space then 2?????????????????Write Log to C; 3???????Else 4?????????????????If D disk exists then 5??????????????????????????If D has enough available space then 6???????????????????????????????????Write log to D; 7??????????????????????????Else 8???????????????????????????????????If E disk exist then 9?????????????????????????????????????????????If E has enough available space then 10????????????????????????????????????????????????????Write Log to E; 11???????????????????????????????????????????Else 12????????????????????????????????????????????????????Prompt user: not available disk space for log; 13???????????????????????????????????????????End if 14?????????????????????????????????Else 15???????????????????????????????????????????Prompt user: not available disk space for log; 16?????????????????????????????????End if 17????????????????????????End if 18???????????????End if 19?????End if |
?
在上面的例子中,如果對其進行壓力測試,就是選用一臺很小配置的機器,各磁盤的剩余空間都很小。在這種情況下運行系統,很快機器上的所有磁盤空間都能被占滿,最后程序被迫終止。
這就是壓力測試的一個典型例子,將程序施加“壓力”,將其逼到沒法運行的地步。如果你選用的機器C盤足夠大,在你整個測試活動過程中,C盤不會本占滿,則執行到的語句只有1、2和19三行,如果你選用的機器,其C、D、E三個磁盤都很小,則日志很快就會占滿這幾個磁盤,則1-19的所有語句都能本執行??梢钥闯?#xff0c;有無壓力測試,對程序語句和邏輯分支的覆蓋是不一樣的。
很多人誤將負載測試和壓力測試混為一談,認為給程序的負載大,程序經受的壓力就大。其實不然,負載測試考驗的是系統的吞吐量,假如一個網站號稱能經受100萬個用戶同時訪問,那么就想方設法模擬出100萬個用戶對網站發起連接,觀察服務器能否正常作出反應。一般地,負載測試是給被測的系統“喂飽”,看看它能否吞下去,系統為了能吞下大的輸入,常常在內部機制上下工夫,或者擴大服務器的配置。
負載測試是盡量增加對系統的訪問,而壓力測試是盡量使系統在資源稀缺的環境下運行。二者區別很大。但不排斥兩個技術同時使用。
轉載于:https://www.cnblogs.com/cheese320/p/8316772.html
總結
以上是生活随笔為你收集整理的负载测试与压力测试的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在微信群里艾特所有人
- 下一篇: 滴水穿石-06集合