㈠ 如何對資料庫進行壓力測試
Expect。你的那個不叫壓力測試。
現在所說的壓力測試時:多個客戶端同時訪問你的專電腦。
就是讓N多個客屬戶端同時來訪問你的資料庫,但是憑人力是不可能完成的,你總不能找N多哥們一起去網吧給你訪問吧。
目前有好多的壓力測試軟體,可以供你使用。就是一台電腦去壓力測試去訪問你的資料庫,可以設置為在同一時間,發送多個請求,這樣的效果看起來就是好像是多個客戶端同時來訪問你的資料庫了。
㈡ 負載測試、壓力測試和容量測試的區別是什麼
壓力測試,表示在一個給定的基準下,能執行的最好情況。例如,在沒有負重的情況下,你跑100米需要花多少時間(這邊,沒有負重是基準)。
負載測試,也是性能測試,但是他是在不同的負載下的。對於剛才那個例子,如果擴展為:在50公斤、100公斤……等情況下,你跑100米需要花多少時間。
容量測試,是在容量情況下的性能測試。對於剛才那個例子,如果改為:在一陣強風的情況下,你在負重或沒有負重的情況下,跑100米需要花多少時間。
㈢ 性能測試,負載測試,壓力測試有什麼區別
以下是網上零散的資料,我對他們進行了整理。
性能測試(或稱多用戶並發性能測試)、負載測試、強度測試、容量測試是性能測試領域里的幾個方面,但是概念很容易混淆。下面將幾個概念進行介紹。
性能測試(Performance Test):通常收集所有和測試有關的所有性能,通常被不同人在不同場合下進行使用。
關注點:how much和how fast
負載測試(Load Test):負載測試是一種性能測試,指數據在超負荷環境中運行,程序是否能夠承擔。
關注點:how much
強度測試(Stress Test): 強度測試是一種性能測試,他在系統資源特別低的情況下軟體系統運行情況,目的是找到系統在哪裡失效以及如何失效的地方。包括
Spike testing:短時間的極端負載測試
Extreme testing:在過量用戶下的負載測試
Hammer testing:連續執行所有能做的操作
容量測試(Volume Test):確定系統可處理同時在線的最大用戶數
關注點:how much(而不是how fast)
容量測試,通常和資料庫有關,容量和負載的區別在於:容量關注的是大容量,而不需要表現實際的使用。
其中,容量測試、負載測試、強度測試的英文解釋為:
Volume Testing = Large amounts of data
Load Testing = Large amount of users
Stress Testing = Too many users, too much data, too little time and too little room
可能大家角色性能測試、負載測試和強度測試比較混淆。沒錯,這三個概念是比較容易使人糊塗。負載測試和強度測試,都屬於性能測試的子集。下面舉個跑步的例子進行解釋。
性能測試,表示在一個給定的基準下,能執行的最好情況。例如,在沒有負重的情況下,你跑100米需要花多少時間(這邊,沒有負重是基準)?
負載測試,也是性能測試,但是他是在不同的負載下的。對於剛才那個例子,如果擴展為:在50公斤、100公斤……等情況下,你跑100米需要花多少時間?
強度測試,是在強度情況下的性能測試。對於剛才那個例子,如果改為:在一陣強風的情況下,你在負重或沒有負重的情況下,跑100米需要花多少時間?
㈣ 如何做壓力測試
一個壓力測試的流程:
1、明確測試目標
2、制定測試計劃
3、實施測試,收集參數
4、分析測試結果
5、給出優化方案
一 、明確測試目標:如果是客戶的需求,那需要向客戶確認,有清楚的性能指標參數,測試時就是保證系統達到該指標並能良好運轉,即壓力測試。如果是自己的系統需要有一個評估,那就需要完整的得到該系統的幾個臨界點,拿到完整的性能曲線,從而來分析部署情況,即為性能測試。不管是哪個,知道了需求,才能制定計劃。
性能測試的目標是發現重大的系統瓶頸。你可以想像一個系統由一系列的瓶頸組成;發現並改善一個瓶頸往往會在其他地方產生一個新的瓶頸。例如,我曾為一運行微軟Windows CE的器件部門工作。我們發現的第一大性能問題體現在某一具體硬體環境下的內存管理中。我們把問題分離出來,改善了內存分配的效率。爾後再次運行我們的測試,又找到了一個新的瓶頸,這次體現在網路吞吐量上(throughput)。解決了這個問題後,我們接著又為下一個瓶頸改善而工作,然後再下一個,直到整個系統都達到了性能目標。要記住的是:關鍵在於要盡早訂立性能目標,否則你可能不知道什麼時候該停止性能測試。
二、制定測試計劃:確定使用什麼工具,著重哪些參數,設置線程數,方法執行次數,執行時間,是否多個介面同時進行測試等等。
三、實施測試,收集參數:選一個施壓工具,來向部署好的服務發起高並發請求,同時關注和收集性能參數。這個是我們花費時間最多的地方。通常該階段需要反復執行,來得到想要的數據。通常來說,我們可以使用JMeter LR AB 自己寫多線程等各種方式,之後介紹一下JMeter。
四、分析測試結果:即根據上一節的參數介紹來進行參數分析。
五、給出優化方案:如果是代碼邏輯耗費cpu,就優化演算法;如果是redis等資料庫耗時,就增加節點,減少讀取,讀寫分離,使用內存等;如果是外在條件限制,則與外部們溝通問題,共同優化等等。
㈤ 如何測試sqlserver資料庫壓力
壓力測試的范唯老疇非常大的,包括磁碟io 網路吞吐 應用程序測試等
一衫山叢般專業的做法是請測試工程師幫忙測試
磁碟io測試工具你可以考慮SQLIO SQLIOSIM 微軟自己的東西你可以放心
網路吞吐測試工具就比較廣泛了 比如樓上也有人提到TTCPW,還有你可以參考一些黑盒壓或櫻力測試軟體比如qacenter等!
㈥ 軟體開發資料庫如何進行測試
比如:數據冗餘,功能和性能方面存在的問題已經嚴重影響應用軟體的使用。軟體測試人員往往重視對軟體功能和編碼的測試,而忽略對軟體性能,特別是資料庫訪問並發測試。因為,他們固有的思想中認為資料庫設計存在問題對系統性能影響不大,或從根本上忽略了資料庫在軟體開發中的地位,直到出現了問題,才想到對資料庫的測試,但往往也是僅僅通過對編碼的測試工作中捎帶對資料庫進行一定的測試,這遠遠是不夠的。目前,中鐵網上訂票系統在大用戶同時在線訂票中系統頻頻癱瘓,就是最好的佐證。 所以,在應用軟體的測試工作中,應該將資料庫作為一個獨立的部分進行充分的測試,這樣才可以得到應用軟體所需要的性能優化的資料庫。那麼,應該對哪些內容進行測試,如何進行測試呢? 2、資料庫設計的測試 資料庫是應用的基礎,其性能直接影響應用軟體的性能。為了使資料庫具有較好的性能,需要對資料庫中的表進行規范化設計。規范化的範式可分為第一範式、第二範式、第三範式、BCNF範式、第四範式和第五範式。一般來說,邏輯資料庫設計應滿足第三範式的要求,這是因為滿足第三範式的表結構容易維護,且基本滿足實際應用的要求。因此,實際應用中一般都按照第三範式的標准進行規范化。但是,規范化也有缺點:由於將一個表拆分成為多個表,在查詢時需要多表連接,降低了查詢速度。故資料庫設計的測試包括前期需求分析產生資料庫邏輯模型和後期業務系統開發中的測試兩部分(這里指的是後者),我在這里稱為實體測試。 資料庫是由若乾的實體組成的,包括(表,視圖,存儲過程等),資料庫最基本的測試就是實體測試,通過對這些實體的測試,可以發現資料庫實體設計得是否充分,是否有遺漏,每個實體的內容是否全面,擴展性如何。 實體測試,可以用來發現應用軟體在功能上存在的不足,也可以發現數據冗餘的問題。經過測試,測試人員對有異議的問題要及時和資料庫的設計人員進行溝通解決。 3、數據一致性測試 在進行實體測試後,應進一步檢查下面的內容以保障數據的一致性: 3.1 表的主鍵測試根據應用系統的實際需求,對每個表的主鍵進行測試,驗證是否存在記錄不唯一的情況,如果有,則要重新設置主鍵,使表中記錄唯一。 3.2 表之間主外鍵關系的測試資料庫中主外鍵欄位在名稱,數據類型,欄位長度上的一致性測試。 3.3 級聯表,刪除主表數據後,相應從報表數據應同時刪除的問題例如學生表和學生成績表,學生數據已經刪除,成績表中相應學生的成績記錄應同時刪除。 3.4 存儲過程和觸發器的測試存儲過程可以人工執行,但觸發器不能人工處理,所以在對存儲過程和觸發器執行的過程中針對SQL SERVER2005及以上版本可以使用Microsoft SQL Server Profiler性能測試工具進行測試。 Microsoft SQL Server Profiler 是 SQL 跟蹤的圖形用戶界面,用於監視資料庫引擎或 Analysis Services 的實例。測試人員可以捕獲有關每個事件的數據並將其保存到文件或表中供以後分析。例如:可以對生產環境進行監視,了解哪些存儲過程由於執行速度太慢影響了性能。 4、資料庫的容量測試 隨著資料庫系統的使用,數據量在飛速增長,如何在使用前對數據容量的增長情況進行初步估算,為最終用戶提供參考,這在資料庫使用和維護過程中,是非常重要的。可以通過對資料庫設計中基本表的數據大小,和每天數據表的數據產生量進行初步估算。 記錄數據量=各個欄位所佔位元組數的總和表的數據量=記錄數據量*記錄數資料庫大小=各表數據量的總和 當然,資料庫的大小不僅僅只是基本表的大小,還有系統表,視圖,存儲過程等其它實體所佔的容量,但最基本的數據是表的數據。另外,資料庫的容量還包括資料庫日誌文件的容量,一般應預留資料庫文件的2倍左右。 5、資料庫的性能測試 應用軟體除了功能外,很重要的一部分就是軟體的性能,而對於資料庫系統,資料庫性能的好壞會直接影響應用軟體的性能,這部分的測試,一般手工測試就顯得無能為力了,這時就要藉助自動化的測試軟體,例如:DataFactory,DataFactory是一種強大的數據產生器,它允許開發人員和測試人員很容易產生百萬行有意義的正確的測試資料庫,該工具支持DB2、Oracle、Sybase、SQL Server資料庫。這樣,就可以模擬出應用軟體長期使用後,海量數據存儲的資料庫的性能狀況。從而盡早發現問題,進行資料庫性能的優化。 這里要注意,進行性能測試的時候,一定要注意測試環境的一致性,包括:操作系統、應用軟體的版本以及硬體的配置等,而且在進行資料庫方面的測試的時候一定要注意資料庫的記錄數、配置等要一致,只有在相同條件下進行測試,才可以對結果進行比較。否則無法和用戶對軟體的性能的觀點達成一致。 6、資料庫的壓力測試 說起測試,我們首先想到的就是軟體正確性的測試,即常說的功能測試。軟體功能正確僅是軟體質量合格指標之一。在實際開發中,還有其它的非功能因素也起著決定性的因素,例如軟體的響應速度。影響軟體響應速度的因素有很多,有些是因為演算法不夠高效;還有些可能受用戶並發數的影響。 在眾多類型的軟體測試中,壓力測試正是以軟體響應速度為測試目標,尤其是針對在較短時間內大量並發用戶的訪問時,軟體的抗壓能力。但壓力測試往往是手工難以測試的,必須藉助自動化測試工具。常用的壓力測試有:Web測試、資料庫測試等。 資料庫在大多數軟體項目中是不可缺少的,對於它進行壓力測試是為了找出資料庫對象是否可以有效地承受來自多個用戶的並發訪問。這些對象主要是:索引、觸發器、存儲過程和鎖。通過對SQL語句和存儲過程的測試,自動化的壓力測試工具可以間接的反應資料庫對象是否需要優化。 這些自動化的測試工具很多,各有特點,基於Java的項目可以使用JMeter,.Net項目可以採用.Net集成開發環境中提供的測試方案。 7、結束語 總之,在應用系統的測試中,把資料庫應當作為獨立的系統來測試,這無疑會為應用軟體的質量增加可靠的保障,同時還必須結合應用軟體進行集成測試,只有二者有機結合起來,才能最大限度的發揮資料庫和應用軟體的功能。
㈦ 壓力測試的測試方法
進行壓力測試的方法,大致可歸納為兩大類:
(1)敏感度分析(sensitiveanalysis)
此方法是利用某一特定風險因子或一組風險因子,將因子在執行者所認定的極端變動的范圍內變動,分析其對於資產組合的影響效果。這一分析方法的優點在於容易了解風險因子在可能的極端變動中,每一變動對於資產組合的總影響效果及邊際效果,缺點則是執行者對於每一逐漸變動所取的幅度及范圍必須十分恰當,否則將會影響分析的結果與判斷,特別是對於非線性報酬率的資產組合,這種情況將更為顯著。
(2)情景分析(scenarioanalysis)
即一組風險因子定義為某種情景,分析在個別情景下的壓力損失,因此此類方法稱為情景分析。情景分析的事件設計方法有兩種:歷史情景分析和假設性情景分析。
① 歷史橘兆情景分析(Historicalscenario):利用某一種過去市場曾經發生的劇烈變動,評估其對現在的資產組合會產生什麼影響。例如考慮1987年美國股市崩盤,計算當時的歷史變動幅度,並依此基礎分析評估對資產組合的影響。BCGFS(2001)的研究顯示,1998年俄羅斯政府違約事件,扮伍賀是金融機構用來在信用風險壓力測試上使用的壓力事件,其他如中南美洲比索風暴、東南亞金融風暴亦是很重要的壓力事件。這種方法的優點是具有客觀性,利用歷史事件及其實際風險因子波動情形,在建立結構化的風險值計算上較有說服力,且風險因子間的相關變化情形也可以依歷史數據作為依據,使模型假設性的情形降低許多。此外,這種模型較直覺,重大歷史事件的深刻印象將使風險值與歷史事件緊密結合,管理者在設定風險限額時,便可依歷史事件的意義來進行評估,使決策更具說服力。
但這種方法的缺點在於現今金融市場變動非常迅速,許多金融商品不斷創新,因此歷史事件無法涵蓋此類商品,且某些商品的歷史價格未出現極端情況,亦無法利用此方法進行衡量。雖然過去發生過的情景未來不一定廳派會再發生,但使用歷史情景分析方法來對資產進行風險管理,至少可保證過去的壓力事件,在事前預防下,未來不會重演。
② 假設性情景分析:僅以歷史情景分析進行壓力測試有其限制,參考歷史事件並另建立對於每個風險因子可能產生的極端事件,將使得壓力測試更具完整性,這就是假設性情景分析。這種分析方法銀行可自行設計可能的各種價格、波動及相關系數等的情景,這些汁算的設定主要來自經驗及主觀。
㈧ 壓力測試過程中主從資料庫會帶來什麼樣的問題怎樣來規避遇到的問題
1.測試計劃是使用 JMeter 進行測試的起點,它是其它 JMeter 測試元件的容器。
2.線程組:代表一定數量的並發用戶,它可以用來模擬並發用戶發送請求。實際的請求內容在Sampler中定義,它被線程組包含。可以在「測試計
劃->添加->線程組」來建立它,然後在線程組面板里有幾個輸入欄:線程數、Ramp-Up Period(in
seconds)、循環次數,其中Ramp-Up Period(in seconds)表示在這時間內創建完所有的線程。如有8個線程,Ramp-Up
= 200秒,那麼線程的啟動時間間隔為200/8=25秒,這樣的好處是:一開始不會對伺服器有太大的負載。線程組是為模擬並發負載而設計。
3、取樣器(Sampler):模擬各種請求。所有實際的測試任務都由取樣器承擔,存在很多種請求。如:HTTP 、ftp請求等等。
4、監聽器:負責收集測試結果,同時也被告知了結果顯示的方式。功能是對取樣器的請求結果顯示、統計一些數據(吞吐量、KB/S……)等。
6、斷言:用於來判斷請求響應的結果是否如用戶所期望,是否正確。它可以用來隔離問題域,即在確保功能正確的前提下執行壓力測試。這個限制對於有效的測試是非常有用的。
7、定時器:負責定義請求(線程)之間的延遲間隔,模擬對伺服器的連續請求。
5、邏輯控制器:允許自定義JMeter發送請求的行為邏輯,它與Sampler結合使用可以模擬復雜的請求序列。
8. 配置元件維護Sampler需要的配置信息,並根據實際的需要會修改請求的內容。
9. 前置處理器和後置處理器負責在生成請求之前和之後完成工作。前置處理器常常用來修改請求的設置,後置處理器則常常用來處理響應的數據。
㈨ 壓力測試和負載測試的區別
負載測試:在一定的工作負荷下,給系統造成的負荷及系統響應的時間。
壓力測試:在一定的負荷條件下,長時間連續運行系統給系統性能造成的影響。
1.性能測試(Performance Test):通常收集所有和測試有關的所有性能,通常被不同人在不同場合下進行使用。關注點:how much和how fast
2.負載測試(Load Test):負載測試是一種性能測試,指數據在超負荷環境中運行,程序是否能夠盯型承擔。
關注點:how much
3.壓力測試(Stress Test): 壓力測試是一種性能測試,他在系統資源特別低的情況下軟體系統運行情況,目的是找到系統在哪裡失效以及如何失效的地方。包括:
Spike testing(尖峰沖擊測試):短時間的極端負載測試
Extreme testing(極端測試):在過量用戶下的負載測試
Hammer testing(錘擊測試):連續執行所有能做的操作
E.g.舉個跑步的例子進行解釋。
1.性能測試,表示在一個給定的基準下,能執行的最凱孫猜好情況。例如,在沒有負重的情況下,你跑100米需要花多少時間(這邊,沒有負重是基準)?
2.負載測凱塌試,也是性能測試,但是他是在不同的負載下的。對於剛才那個例子,如果擴展為:在50公斤、100公斤……等情況下,你跑100米需要花多少時間?
3.壓力測試,是在壓力情況下的性能測試。對於剛才那個例子,如果改為:在一陣強風的情況下,你在負重或沒有負重的情況下,跑100米需要花多少時間?
性能測試是動力,負載測試載重,壓力測試強度.