① 軟體開發資料庫如何進行測試
比如:數據冗餘,功能和性能方面存在的問題已經嚴重影響應用軟體的使用。軟體測試人員往往重視對軟體功能和編碼的測試,而忽略對軟體性能,特別是資料庫訪問並發測試。因為,他們固有的思想中認為資料庫設計存在問題對系統性能影響不大,或從根本上忽略了資料庫在軟體開發中的地位,直到出現了問題,才想到對資料庫的測試,但往往也是僅僅通過對編碼的測試工作中捎帶對資料庫進行一定的測試,這遠遠是不夠的。目前,中鐵網上訂票系統在大用戶同時在線訂票中系統頻頻癱瘓,就是最好的佐證。 所以,在應用軟體的測試工作中,應該將資料庫作為一個獨立的部分進行充分的測試,這樣才可以得到應用軟體所需要的性能優化的資料庫。那麼,應該對哪些內容進行測試,如何進行測試呢? 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、結束語 總之,在應用系統的測試中,把資料庫應當作為獨立的系統來測試,這無疑會為應用軟體的質量增加可靠的保障,同時還必須結合應用軟體進行集成測試,只有二者有機結合起來,才能最大限度的發揮資料庫和應用軟體的功能。
② jmeter怎麼測試其他伺服器上的測試資料庫
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. 前置處理器和後置處理器負責在生成請求之前和之後完成工作。前置處理器常常用來修改請求的設置,後置處理器則常常用來處理響應的數據。
二、Jmeter報告 (轉載)
http://www.cnblogs.com/jackei/archive/2006/11/13/558720.html
1、Aggregate Report 解析
Aggregate Report 是 JMeter 常用的一個 Listener,中文被翻譯為「聚合報告」。今天再次有同行問到這個報告中的各項數據表示什麼意思,順便在這里公布一下,以備大家查閱。
如果大家都是做Web應用的性能測試,例如只有一個登錄的請求,那麼在Aggregate Report中,會顯示一行數據,共有10個欄位,含義分別如下。
Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這里顯示的就是 Name 屬性的值
#Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那麼這里顯示100
Average:平均響應時間——默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 為單位顯示平均響應時間
Median:中位數,也就是 50% 用戶的響應時間
90% Line:90% 用戶的響應時間
Note:關於 50% 和 90% 並發用戶數的含義,請參考下文
http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
Min:最小響應時間
Max:最大響應時間
Error%:本次測試中出現錯誤的請求的數量/請求的總數
Throughput:吞吐量——默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數
KB/Sec:每秒從伺服器端接收到的數據量,相當於LoadRunner中的Throughput/Sec
基本知識:
1、吞吐量:是指在沒有幀丟失的情況下,設備能夠接受的最大速率。
2、存儲的最小單位是位元組Byte,對於存儲單位,有以下幾個單位,GB、MB和KB,那麼這三者之間的換算關系是:1GB=1024MB,1MB=1024KB,1KB=1024Bytes。
Bit :「位」,稱為bit,也就是比特,有的時候也稱為位。一個位元組為8位二進製表示。
Byte:「位元組」,一個位元組就是8比特。
3、Mbps (million bits per second 兆位/秒) 代表每秒傳輸1,000,000比特。該縮寫用來描述數據傳輸速度。例如:4Mbps=每秒鍾傳輸4M比特。
數據傳輸速率的單位,字母b(bit)是比特和字母 B (Byte)是位元組。
4、吞吐量與帶寬的區分:吞吐量和帶寬是很容易搞混的一個詞,兩者的單位都是Mbps.先讓我們來看兩者對應的英語,吞吐
量:throughput ; 帶寬: Max net bitrate
。當我們討論通信鏈路的帶寬時,一般是指鏈路上每秒所能傳送的比特數。我們可以說乙太網的帶寬是10Mbps。但是,我們需要區分鏈路上的可用帶寬(帶
寬)與實際鏈路中每秒所能傳送的比特數(吞吐量)。我們傾向於用「吞吐量」一次來表示一個系統的測試性能。這樣,因為實現受各種低效率因素的影響,所以由
一段帶寬為10Mbps的鏈路連接的一對節點可能只達到2Mbps的吞吐量。這樣就意味著,一個主機上的應用能夠以2Mbps的速度向另外的一個主機發送
數據。
5、方差和標准差都是用來描述一組數據的波動性的(集中還是分散),標准差的平方就是方差。方差越大,數據的波動越大。
三.利用BadBoy生成測試計劃(測試腳本)
badBoy可以非常容易的生成web的測試腳本。類似與LoadRunner的使用,輸入站點的URL,點擊Record開始錄制。File –> Export to Jmeter ,導出為Jmeter認識的測試腳本。
四.一個簡單的測試示例思路(目前自己思路,不斷改進)
a. 需要的「測試腳本」,對應web的應用使用badboy生成測試腳本。直接導入Jmeter,進行配置。
b.如圖
TestPlan :是整個Jmeter測試執行的容器。
ThreadGroup :模擬請求,定義線程數、Ramp-Up Period、循環次數。
Step1 :循環控制器 ,控制Sample的執行次數。
Sample取樣器 :決定進行那種類型的測試,如http、ftp等。
監聽器 :圖形結果、聚合報告。
定時器 :Random類型,定義線程請求的延遲。
c.聚合報告的解釋
Label :各個模擬測試的名稱
#Samples :各個測試的樣本總數
Average :每個請求的平均響應時間
Median :中值,即50%請求的平均響應時間
90%Line :90%請求的響應時間
Min :最小響應時間 ,Max :最大的響應時間
Error% :錯誤響應的概率。即無法響應的概率。
ThroughPut :吞吐量 -- 默認情況下表示每秒完成的請求數(Request per Second)。
KB/Sec :每秒從伺服器端接收到的數據量。
五.Jmeter常見問題 (轉載) http://www.51testing.com/?uid-128005-action-viewspace-itemid-84094
說明:這些問答是從網上轉載的,自己修改了其中的一些內容,如果大家興趣,可以將大家在使用Jmeter的時候碰到的問題寫下來,我們一起補充到這個問答裡面,共同努力完善jmeter的資料。
1. JMeter的工作原理是什麼?
向伺服器提交請求;從伺服器取回請求返回的結果。
2. JMeter的作用?
JMeter可以用於測試靜態或者動態資源的性能(文件、Servlets、Perl腳本、java對象、資料庫和查詢、ftp伺服器或者其他的資源)。
JMeter用於模擬在伺服器、網路或者其他對象上附加高負載以測試他們提供服務的受壓能力,或者分析他們提供的服務在不同負載條件下的總性能情況。你可
以用JMeter提供的圖形化界面分析性能指標或者在高負載情況下測試伺服器/腳本/對象的行為。
3. 怎樣能看到jmeter提供的腳本範例?
在\JMeter\jakarta-jmeter-2.0.3\xdocs\demos目錄下。
4. 怎樣設置並發用戶數?
選中可視化界面中左邊樹的Test Plan節點,單擊右鍵,選擇Add-> Thread Group,其中Number of Threads參數用來設置發送請求的用戶數目。
5. JMeter的運行指示?
Jmeter在運行時,右上角有個單選框大小的小框框,運行是該框框為綠色,運行完畢後,該框框為白色。
6. User Parameters的作用是什麼?
提高腳本可用性
7. 在result里會出現彩色字體的http response code,說明什麼呢?
Http response code是http返回值,彩色字體較引人注目,可以使用戶迅速關注。象綠色的302就說明在這一步驟中,返回值取自本機的catch,而不是server。
8. 怎樣計算Ramp-up period時間?
Ramp-up period是指每個請求發生的總時間間隔,單位是秒。如果Number of Threads設置為5,而Ramp-up
period是10,那麼每個請求之間的間隔就是10/5,也就是2秒。Ramp-up period設置為0,就是同時並發請求。
9. Get和Post的區別?
他們是http協議的2種不同實現方式。Get是指server從Request URL取得所需參數。從result中的request中可以看到,get可以看到參數,但是post是主動向server發送參數,所以一般看不到這些參數的。
10. 哪些原因可能導致error的產生?
a. Http錯誤,包括不響應,結果找不到,數據錯誤等等;
b. JMeter本身原因產生的錯誤。
11. 為什麼Aggregate Report結果中的Total值不是真正的總和?
JMeter給結果中total的定義是並不完全指總和,為了方便使用,它的值表現了所在列的代表值,比如min值,它的total就是所在列的最小值。下圖就是total在各列所表示的意思。
12. JMeter的Thread Number是提供多個不同用戶並發的功能么?
不是,Thread Number僅僅是指並發數,如果需要實現多個不同用戶並發,我們應該採用其它方法,比如通過在jmeter外建立csv文件的方法來實現。
13. 同時並發請求時,若需要模擬不同的用戶同時向不同的server並發請求,怎樣實現呢?
方法很靈活,我們可以將不同的server在thread裡面預先寫好。或者預先將固定的變數值寫入csv文件,這樣還可以方便修改。然後將文件添加到User Parameters。
14. User Parameter中的DUMMY是什麼意思?
當其具體內容是${__CSVRead(${__property(user.dir)}${FILENAME},next())}時用來模擬讀文件的下一行。
15. 當測試對象在多server間跳轉時,應該怎樣處理?
程序運行時,有些http和隱函數會攜帶另外的server IP,我們可以從他們的返回值中獲取。
16. 為何測試對象是http和https混雜出現?
Https是加密協議,為了安全,一般不推薦使用http,但是有些地方,使用https過於復雜或者較難實現,會採用http協議。
17. Http和https的默認埠是什麼?
Apache server (Http)的默認埠是80;
SSL (Https)的默認埠是443。
18. 為何在run時,有些頁面失敗,但是最後不影響結果?
原因較多,值得提及的一種是因為主流頁面與它不存在依賴關系,所以即使這樣的頁面出錯,也不會影響運行得到正常結果,但是這樣會影響到測試的結果以及分析結果。
19. 為什麼腳本剛開始運行就有錯誤,其後來的腳本還可運行?
在Thread
Group中有相關設置,如果選擇了continue,即使前面的腳本出現錯誤,整個thread仍會運行直到結束。選擇Stop
Thread會結束當前thread;選擇Stop Test則會結束全部的thread。推薦選項是Stop Thread。
20. 在Regular Expression Extractor會看到Template的值是$1$,這個值是什麼意思呢?
$1$是指取第一個()裡面的值。如果Regular Expression的數值有多個,用這種方法可以避免不必要的麻煩。
21. Regular Expression中的(.*)是什麼意思?
那是一個正則表達式(regular expression)。』.』等同於sql語言中的』?』,表示可有可無。』*』表示0個或多個。』()』表示需要取值。(.*)表達任意長度的字元串。
22. 在讀取Regular Expression時要注意什麼?
一定要保證所取數值的絕對唯一性。
23. 怎樣才能判斷什麼樣的情況需要添加Regular Expression Extractor?
檢查Http Request中的Send Parameters,如果有某個參數是其前一個page中所沒有給出的,就要到原文件中查找,並添加Regular Expression Extractor到其前一page的http request中。
24. 在自動獲取的腳本中有時會出現空的http request,是什麼意思呢?
是因為在獲取腳本時有些錯誤,是腳本工具原因。在run時這種錯誤不參與運行的。
25. 在運行結果中為何有rate為N/A的情況出現?
可能因為JMeter自身問題造成,再次運行可以得到正確結果。
26. 常用http錯誤代碼有哪些?
400無法解析此請求。
403禁止訪問:訪問被拒絕。
404找不到文件或目錄。
405用於訪問該頁的HTTP動作未被許可。
410文件已刪除。
500伺服器內部錯誤。
501標題值指定的配置沒有執行。
502 Web伺服器作為網關或代理伺服器時收到無效的響應。
27. Http request中的Send Parameters是指什麼?
是指code中寫定的值和自定義變數中得到的值,就是在運行頁面時需要的參數。
28. Parameters在頁面中是不斷傳遞的么?
是的。參數再產生後會在頁面中一直傳遞到所需頁面。所以我們可以在動態參數產生時捕獲它,也可以在所需頁面的上一頁面捕獲。(但是這樣可能有錯誤,最好在產生頁面獲取)
29. 在使用JMeter測試時,是完全模擬用戶操作么?造成的結果也和用戶操作完全相同么?
是的。JMeter完全模擬用戶操作,所以操作記錄會全部寫入DB.在運行失敗時,可能會產生錯誤數據,這就取決於腳本檢查是否嚴謹,否則錯誤數據也會進入DB,給程序運行帶來很多麻煩。
六.Jmeter測試心得(轉載) http://www.iteye.com/topic/211216
企業應用開發過程中,性能測試是很重要的一個環節,在這個環節中Apache的JMeter以它開源、100%純Java、操作方便等優點發揮著很大的作用。
經過一段時間的使用,多少有些心得和技巧,拿出來共享,希望能有些幫助。
1、製作測試腳本:
手工製作測試腳本,需要你知道請求的url和攜帶的參數等等,太花費時間,
所以可以用badboy工具錄制腳本。這個工具雖然不是開源的,但是卻可以用來免費的錄製成.jmx的腳本,使用起來很方便。
官方網站是:http://www.badboy.com.au/
2、出現亂碼了?
在用JMeter發行HTTPRequest時,在請求參數中有中文時,發現存儲到DB中後,相應的欄位是亂碼,
明明在參數後面的Encode選項中打了V。後來發現badboy錄制腳本的時候並沒有記錄編碼方式,所以修改腳本,
在Content encoding中設置正確的編碼方式就不會出現亂碼了。
3、JMeter的妙用---准備測試數據:
要求性能測試開始前,先准備5W條數據。當然可以通過直接修改DB,但是如果這5W條數據涉及到很多表的關聯,
甚至還要通過存儲過程的處理怎麼辦,直接修改DB很容易出現錯誤的數據,要是在客戶的機器上弄錯,可就闖禍了。
這時候想到了JMeter,它本來是用來模擬大量用戶並發請求的,現在用它來批量的生成數據吧。
如果要求每條數據都不同,就要修改腳本,使用JMeter的函數來動態產生數據,比較常用的是CSVRead函數,
記不住名的話Ctrl+F可以呼喚出函數助手。使用這個函數的時候需要注意幾點,首先是csv文件的編碼格式,
使用ansi沒有問題,使用unicode時會使讀取的第一行數據出現錯誤;
${__CSVRead(data.txt,0)}---讀取本行的第一列值
${__CSVRead(data.txt,1)}${__CSVRead(data.txt,next)}---讀取本行的第二列值,並把行標移動到下一行
試驗證明JMeter應該做好了同步,在多線程環境下上面的調用方法沒有問題;
最後,修改JMeter的線程數會加快數據生成的速度,原理是當並發線程在20左右的時候會達到最大的吞吐量(request/分),
所以應該設定線程數20左右。
4、JMeter中debug方法:
JMeter提供了log函數輸出log,但是有時候並不好用,比如我想輸出某個函數的返回值看是不是正確的,
${__log(${__CSVRead(data.txt,1)})}這樣的寫法是錯誤的,JMeter會拋出異常,該怎麼辦呢?
答案是巧用監聽器(Listener)來輸出想看到的數據,結果顯示為樹的那個監聽器,
它可以讓你查看每個sampler的請求數據和響應數據,在請求數據中就有你想看到的信息。
5、常用的功能:
・使用HTTP Cookie Manager或URL重寫實現同一線程內的多個請求共享Session。
・把Login的請求放到只執行一次的控制器中,那麼即使循環多次,Login也只請求一次。
・如果想讓多個線程在同一時刻同時請求,那麼用Synchronizing Timer來做集合點。
・為了節省系統資源,使用非窗口模式運行JMeter(jmeter -n -t test.jmx)
・如果模擬並發用戶過多,比如200線程,那麼可以分散到多台機器上運行Jmeter(比如4台電腦,每台50線程)
更多功能請參照使用手冊
中文手冊(未完成)http://wiki.javascud.org/pages/viewpage.action?pageId=5566
6、在winnt系統上,使用perfmon來幫助Jmeter採集伺服器的系統資源數據,可以配置log輸出這些數據作為性能瓶頸分析時使用。
七.置信區間 http://java.chinaitlab.com/tools/355421.html
對數據進行更科學的分析,確定測試結果。類似於Jmeter聚合報告的90% Line給出的參考,而不能僅僅參考均值。
③ 如何使用MySQL自帶的性能壓力測試工具mysqlslap
使用--auto-generate-sql參數表示用mysqlslap工具自己生成的SQL腳本來測試並發壓力
mysqlslap --auto-generate-sql -uroot -p123456
並發測試,使用–concurrency來模擬並發連接,連接數可以多個,用逗號隔開
mysqlslap --auto-generate-sql --concurrency=100 -uroot -p123456
mysqlslap --auto-generate-sql --concurrency=50,100 -uroot -p123456
使用--iterations模擬迭代測試,用於需要多次執行測試得到平均值。
mysqlslap --auto-generate-sql --iterations=5 -uroot -p123456
使用--engine測試不同的存儲引擎的性能進行對比
mysqlslap --auto-generate-sql --concurrency=50,100 --iterations=5 --engine=myisam,innodb -uroot -p123456
--query=name,-q 指定自定義腳本執行測試,例如可以調用自定義的一個存儲過程或者sql語句來執行測試。--create-schema 指定自定義的測試資料庫名稱,
mysqlslap --auto-generate-sql --concurrency=50,100 --create-schema="landclash" --query="call landclash.sp_player_getname(34);" --number-of-queries=5000 -uroot -p123456
④ 性能測試時要求20並發,應用的並發數設置成多少合適
性能測試在軟體的質量保證中起著重要的作用,它包括的測試內容豐富多樣。中國軟體評測中心將性能測試概括為三個方面:應用在客戶端性能的測試、應用在網路上性能的測試和應用在伺服器端性能的測試。通常情況下,三方面有效、合理的結合,可以達到對系統性能全面的分析和瓶頸的預測。應用在客戶端性能測試的目的是考察客戶端應用的性能,測試的入口是客戶端。它主要包括並發性能測試、疲勞強度測試、大數據量測試和速度測試等,其中並發性能測試是重點。並發性能測試是重點並發性能測試的過程是一個負載測試和壓力測試的過程,即逐漸增加負載,直到系統的瓶頸或者不能接收的性能點,通過綜合分析交易執行指標和資源監控指標來確定系統並發性能的過程。負載測試(LoadTesting)是確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等來決定系統的性能。負載測試是一個分析軟體應用程序和支撐架構、模擬真實環境的使用,從而來確定能夠接收的性能過程。壓力測試(StressTesting)是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。並發性能測試的目的主要體現在三個方面:以真實的業務為依據,選擇有代表性的、關鍵的業務操作設計測試案例,以評價系統的當前性能;當擴展應用程序的功能或者新的應用程序將要被部署時,負載測試會幫助確定系統是否還能夠處理期望的用戶負載,以預測系統的未來性能;通過模擬成百上千個用戶,重復執行和運行測試,可以確認性能瓶頸並優化和調整應用,目的在於尋找到瓶頸問題。當一家企業自己組織力量或委託軟體公司代為開發一套應用系統的時候,尤其是以後在生產環境中實際使用起來,用戶往往會產生疑問,這套系統能不能承受大量的並發用戶同時訪問?這類問題最常見於採用聯機事務處理(OLTP)方式資料庫應用、Web瀏覽和視頻點播等系統。這種問題的解決要藉助於科學的軟體測試手段和先進的測試工具。舉例說明:電信計費軟體眾所周知,每月20日左右是市話交費的高峰期,全市幾千個收費網點同時啟動。收費過程一般分為兩步,首先要根據用戶提出的電話號碼來查詢出其當月產生費用,然後收取現金並將此用戶修改為已交費狀態。一個用戶看起來簡單的兩個步驟,但當成百上千的終端,同時執行這樣的操作時,情況就大不一樣了,如此眾多的交易同時發生,對應用程序本身、操作系統、中心資料庫伺服器、中間件伺服器、網路設備的承受力都是一個嚴峻的考驗。決策者不可能在發生問題後才考慮系統的承受力,預見軟體的並發承受力,這是在軟體測試階段就應該解決的問題。大多數公司企業需要支持成百上千名用戶,各類應用環境以及由不同供應商提供的元件組裝起來的復雜產品,難以預知的用戶負載和愈來愈復雜的應用程序,使公司擔憂會發生投放性能差、用戶遭受反應慢、系統失靈等問題。其結果就是導致公司收益的損失。如何模擬實際情況呢?找若乾颱電腦和同樣數目的操作人員在同一時刻進行操作,然後拿秒錶記錄下反應時間?這樣的手工作坊式的測試方法不切實際,且無法捕捉程序內部變化情況,這樣就需要壓力測試工具的輔助。測試的基本策略是自動負載測試,通過在一台或幾台PC機上模擬成百或上千的虛擬用戶同時執行業務的情景,對應用程序進行測試,同時記錄下每一事務處理的時間、中間件伺服器峰值數據、資料庫狀態等。通過可重復的、真實的測試能夠徹底地度量應用的可擴展性和性能,確定問題所在以及優化系統性能。預先知道了系統的承受力,就為最終用戶規劃整個運行環境的配置提供了有力的依據。並發性能測試前的准備工作測試環境:配置測試環境是測試實施的一個重要階段,測試環境的適合與否會嚴重影響測試結果的真實性和正確性。測試環境包括硬體環境和軟體環境,硬體環境指測試必需的伺服器、客戶端、網路連接設備以及列印機/掃描儀等輔助硬體設備所構成的環境;軟體環境指被測軟體運行時的操作系統、資料庫及其他應用軟體構成的環境。一個充分准備好的測試環境有三個優點:一個穩定、可重復的測試環境,能夠保證測試結果的正確;保證達到測試執行的技術需求;保證得到正確的、可重復的以及易理解的測試結果。測試工具:並發性能測試是在客戶端執行的黑盒測試,一般不採用手工方式,而是利用工具採用自動化方式進行。成熟的並發性能測試工具有很多,選擇的依據主要是測試需求和性能價格比。著名的並發性能測試工具有QALoad、LoadRunner、BenchmarkFactory和Webstress等。這些測試工具都是自動化負載測試工具,通過可重復的、真實的測試,能夠徹底地度量應用的可擴展性和性能,可以在整個開發生命周期、跨越多種平台、自動執行測試任務,可以模擬成百上千的用戶並發執行關鍵業務而完成對應用程序的測試。測試數據:在初始的測試環境中需要輸入一些適當的測試數據,目的是識別數據狀態並且驗證用於測試的測試案例,在正式的測試開始以前對測試案例進行調試,將正式測試開始時的錯誤降到最低。在測試進行到關鍵過程環節時,非常有必要進行數據狀態的備份。製造初始數據意味著將合適的數據存儲下來,需要的時候恢復它,初始數據提供了一個基線用來評估測試執行的結果。在測試正式執行時,還需要准備業務測試數據,比如測試並發查詢業務,那麼要求對應的資料庫和表中有相當的數據量以及數據的種類應能覆蓋全部業務。模擬真實環境測試,有些軟體,特別是面向大眾的商品化軟體,在測試時常常需要考察在真實環境中的表現。如測試殺毒軟體的掃描速度時,硬碟上布置的不同類型文件的比例要盡量接近真實環境,這樣測試出來的數據才有實際意義。並發性能測試的種類與指標並發性能測試的種類取決於並發性能測試工具監控的對象,以QALoad自動化負載測試工具為例。軟體針對各種測試目標提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、JavaScript等不同的監控對象,支持Windows和UNIX測試環境。最關鍵的仍然是測試過程中對監控對象的靈活應用,例如三層結構的運行模式廣泛使用,對中間件的並發性能測試作為問題被提到議事日程上來,許多系統都採用了國產中間件,選擇JavaScript監控對象,手工編寫腳本,可以達到測試目的。採用自動化負載測試工具執行的並發性能測試,基本遵循的測試過程有:測試需求與測試內容,測試案例制定,測試環境准備,測試腳本錄制、編寫與調試,腳本分配、回放配置與載入策略,測試執行跟蹤,結果分析與定位問題所在,測試報告與測試評估。並發性能測試監控的對象不同,測試的主要指標也不相同,主要的測試指標包括交易處理性能指標和UNIX資源監控。其中,交易處理性能指標包括交易結果、每分鍾交易數、交易響應時間(Min:最小伺服器響應時間;Mean:平均伺服器響應時間;Max:最大伺服器響應時間;StdDev:事務處理伺服器響應的偏差,值越大,偏差越大;Median:中值響應時間;90%:90%事務處理的伺服器響應時間)、虛擬並發用戶數。應用實例:「新華社多媒體資料庫V1.0」性能測試中國軟體評測中心(CSTC)根據新華社技術局提出的《多媒體資料庫(一期)性能測試需求》和GB/T17544《軟體包質量要求和測試》的國家標准,使用工業標准級負載測試工具對新華社使用的「新華社多媒體資料庫V1.0」進行了性能測試。性能測試的目的是模擬多用戶並發訪問新華社多媒體資料庫,執行關鍵檢索業務,分析系統性能。性能測試的重點是針對系統並發壓力負載較大的主要檢索業務,進行並發測試和疲勞測試,系統採用B/S運行模式。並發測試設計了特定時間段內分別在中文庫、英文庫、圖片庫中進行單檢索詞、多檢索詞以及變檢索式、混合檢索業務等並發測試案例。疲勞測試案例為在中文庫中並發用戶數200,進行測試周期約8小時的單檢索詞檢索。在進行並發和疲勞測試的同時,監測的測試指標包括交易處理性能以及UNIX(Linux)、Oracle、Apache資源等。測試結論:在新華社機房測試環境和內網測試環境中,100M帶寬情況下,針對規定的各並發測試案例,系統能夠承受並發用戶數為200的負載壓力,最大交易數/分鍾達到78.73,運行基本穩定,但隨著負載壓力增大,系統性能有所衰減。系統能夠承受200並發用戶數持續周期約8小時的疲勞壓力,基本能夠穩定運行。通過對系統UNIX(Linux)、Oracle和Apache資源的監控,系統資源能夠滿足上述並發和疲勞性能需求,且系統硬體資源尚有較大利用餘地。當並發用戶數超過200時,監控到HTTP500、connect和超時錯誤,且Web伺服器報內存溢出錯誤,系統應進一步提高性能,以支持更大並發用戶數。建議進一步優化軟體系統,充分利用硬體資源,縮短交易響應時間。疲勞強度與大數據量測試疲勞測試是採用系統穩定運行情況下能夠支持的最大並發用戶數,持續執行一段時間業務,通過綜合分析交易執行指標和資源監控指標來確定系統處理最大工作量強度性能的過程。疲勞強度測試可以採用工具自動化的方式進行測試,也可以手工編寫程序測試,其中後者占的比例較大。一般情況下以伺服器能夠正常穩定響應請求的最大並發用戶數進行一定時間的疲勞測試,獲取交易執行指標數據和系統資源監控數據。如出現錯誤導致測試不能成功執行,則及時調整測試指標,例如降低用戶數、縮短測試周期等。還有一種情況的疲勞測試是對當前系統性能的評估,用系統正常業務情況下並發用戶數為基礎,進行一定時間的疲勞測試。大數據量測試可以分為兩種類型:針對某些系統存儲、傳輸、統計、查詢等業務進行大數據量的獨立數據量測試;與壓力性能測試、負載性能測試、疲勞性能測試相結合的綜合數據量測試方案。大數據量測試的關鍵是測試數據的准備,可以依靠工具准備測試數據。速度測試主要是針對關鍵有速度要求的業務進行手工測速度,可以在多次測試的基礎上求平均值,可以和工具測得的響應時間等指標做對比分析。應用在網路上性能的測試重點是利用成熟先進的自動化技術進行網路應用性能監控、網路應用性能分析和網路預測。網路應用性能分析網路應用性能分析的目的是准確展示網路帶寬、延遲、負載和TCP埠的變化是如何影響用戶的響應時間的。利用網路應用性能分析工具,例如ApplicationExpert,能夠發現應用的瓶頸,我們可知應用在網路上運行時在每個階段發生的應用行為,在應用線程級分析應用的問題。可以解決多種問題:客戶端是否對資料庫伺服器運行了不必要的請求?當伺服器從客戶端接受了一個查詢,應用伺服器是否花費了不可接受的時間聯系資料庫伺服器?在投產前預測應用的響應時間;利用ApplicationExpert調整應用在廣域網上的性能;ApplicationExpert能夠讓你快速、容易地模擬應用性能,根據最終用戶在不同網路配置環境下的響應時間,用戶可以根據自己的條件決定應用投產的網路環境。網路應用性能監控在系統試運行之後,需要及時准確地了解網路上正在發生什麼事情;什麼應用在運行,如何運行;多少PC正在訪問LAN或WAN;哪些應用程序導致系統瓶頸或資源競爭,這時網路應用性能監控以及網路資源管理對系統的正常穩定運行是非常關鍵的。利用網路應用性能監控工具,可以達到事半功倍的效果,在這方面我們可以提供的工具是NetworkVantage。通俗地講,它主要用來分析關鍵應用程序的性能,定位問題的根源是在客戶端、伺服器、應用程序還是網路。在大多數情況下用戶較關心的問題還有哪些應用程序佔用大量帶寬,哪些用戶產生了最大的網路流量,這個工具同樣能滿足要求。網路預測考慮到系統未來發展的擴展性,預測網路流量的變化、網路結構的變化對用戶系統的影響非常重要。根據規劃數據進行預測並及時提供網路性能預測數據。我們利用網路預測分析容量規劃工具PREDICTOR可以作到:設置服務水平、完成日網路容量規劃、離線測試網路、網路失效和容量極限分析、完成日常故障診斷、預測網路設備遷移和網路設備升級對整個網路的影響。從網路管理軟體獲取網路拓撲結構、從現有的流量監控軟體獲取流量信息(若沒有這類軟體可人工生成流量數據),這樣可以得到現有網路的基本結構。在基本結構的基礎上,可根據網路結構的變化、網路流量的變化生成報告和圖表,說明這些變化是如何影響網路性能的。PREDICTOR提供如下信息:根據預測的結果幫助用戶及時升級網路,避免因關鍵設備超過利用閥值導致系統性能下降;哪個網路設備需要升級,這樣可減少網路延遲、避免網路瓶頸;根據預測的結果避免不必要的網路升級。對於應用在伺服器上性能的測試,可以採用工具監控,也可以使用系統本身的監控命令,例如Tuxedo中可以使用Top命令監控資源使用情況。實施測試的目的是實現伺服器設備、伺服器操作系統、資料庫系統、應用在伺服器上性能的全面監控,測試原理如下圖。UNIX資源監控指標和描述監控指標描述平均負載系統正常狀態下,最後60秒同步進程的平均個數沖突率在乙太網上監測到的每秒沖突數進程/線程交換率進程和線程之間每秒交換次數CPU利用率CPU佔用率(%)磁碟交換率磁碟交換速率接收包錯誤率接收乙太網數據包時每秒錯誤數包輸入率每秒輸入的乙太網數據包數目中斷速率CPU每秒處理的中斷數輸出包錯誤率發送乙太網數據包時每秒錯誤數包輸入率每秒輸出的乙太網數據包數目讀入內存頁速率物理內存中每秒讀入內存頁的數目寫出內存頁速率每秒從物理內存中寫到頁文件中的內存頁數目或者從物理內存中刪掉的內存頁數目內存頁交換速率每秒寫入內存頁和從物理內存中讀出頁的個數進程入交換率交換區輸入的進程數目進程出交換率交換區輸出的進程數目系統CPU利用率系統的CPU佔用率(%)用戶CPU利用率用戶模式下的CPU佔用率(%)磁碟阻塞磁碟每秒阻塞的位元組數
⑤ 誰幫忙推薦幾款,資料庫並發查詢測試的軟體!!!像loadrunner....這樣的
DNS,簡單地說,就是Domain Name System,翻成中文就是「域名系統」。
它的作用:DNS是一個非常重要而且常用的系統,主要的功能就是將人易於記憶的Domain Name與人不容易記憶的IP Address作轉換。而上面執行DNS服務的這台網路主機,就可以稱之為DNS Server。基本上,通常我們都認為DNS只是將Domain Name轉換成IP Address,然後再使用所查到的IP Address去連接(俗稱「正向解析」)。事實上,將IP Address轉換成Domain Name的功能也是相當常使用到的,當login到一台Unix工作站時,工作站就會去做反查,找出你是從哪個地方連線進來的(俗稱「逆向解析」)。
DNS後綴:為客戶端計算機配置主 DNS 後綴
1.
在「控制面板」中,打開「系統」。
2.
單擊「計算機名」選項卡。
此選項卡顯示計算機名、所屬的工作組或域以及計算機的簡要描述。
3.
單擊「更改」,然後單擊「其他」。
4.
在「DNS 後綴和 NetBIOS 計算機名」中,執行以下操作:
對於「此計算機的主 DNS 後綴」,在完成其完全合格的域名 (FQDN) 後,指定要附加到該計算機名的 DNS 後綴。
5.
應用這些更改之後,重新啟動計算機以便用新的 DNS 域名初始化。
6.
如果先前已經安裝並已將計算機配置為 DNS 伺服器,請驗證是否已更新區域授權記錄。
ip
所謂IP地址就是給每個連接在Internet上的主機分配的一個32bit地址。
按照TCP/IP(Transport Control Protocol/Internet Protocol,傳輸控制協議/Internet協議)協議規定,IP地址用二進制來表示,每個IP地址長32bit,比特換算成位元組,就是4個位元組。例如一個採用二進制形式的IP地址是「」,這么長的地址,人們處理起來也太費勁了。為了方便人們的使用,IP地址經常被寫成十進制的形式,中間使用符號「.」分開不同的位元組。於是,上面的IP地址可以表示為「10.0.0.1」。IP地址的這種表示法叫做「點分十進製表示法」,這顯然比1和0容易記憶得多。
有人會以為,一台計算機只能有一個IP地址,這種觀點是錯誤的。我們可以指定一台計算機具有多個IP地址,因此在訪問互聯網時,不要以為一個IP地址就是一台計算機;另外,通過特定的技術,也可以使多台伺服器共用一個IP地址,這些伺服器在用戶看起來就像一台主機似的。
如何分配IP地址
TCP/IP協議需要針對不同的網路進行不同的設置,且每個節點一般需要一個「IP地址」、一個「子網掩碼」、一個「默認網關」。不過,可以通過動態主機配置協議(DHCP),給客戶端自動分配一個IP地址,避免了出錯,也簡化了TCP/IP協議的設置。
那麼,區域網怎麼分配IP地址呢?互聯網上的IP地址統一由一個叫「IANA」(Internet Assigned Numbers Authority,互聯網網路號分配機構)的組織來管理。
TCP
網路協議(Protocol)是一種特殊的軟體,是計算機網路實現其功能的最基本機制。網路協議的本質是規則,即各種硬體和軟體必須遵循的共同守則。網路協議並不是一套單獨的軟體,它融合於其他所有的軟體系統中,因此可以說,協議在網路中無所不在。網路協議遍及OSI通信模型的各個層次,從我們非常熟悉的TCP/IP、HTTP、FTP協議,到OSPF、IGP等協議,有上千種之多。對於普通用戶而
言,不需要關心太多的底層通信協議,只需要了解其通信原理即可。在實際管理中,底層通信協議一般會自動工作,不需要人工干預。但是對於第三層以上的協議,就經常需要人工干預了,比如TCP/IP協議就需要人工配置它才能正常工作。
區域網常用的三種通信協議分別是TCP/IP協議、NetBEUI協議和IPX/SPX協議。 TCP/IP協議毫無疑問是這三大協議中最重要的一個,作為互聯網的基礎協議,沒有它就根本不可能上網,任何和互聯網有關的操作都離不開TCP/IP協議。不過TCP/IP協議也是這三大協議中配置起來最麻煩的一個,單機上網還好,而通過區域網訪問互聯網的話,就要詳細設置IP地址,網關,子網掩碼,DNS伺服器等參數。
TCP/IP盡管是目前最流行的網路協議,但TCP/IP協議在區域網中的通信效率並不高,使用它在瀏覽「網上鄰居」中的計算機時,經常會出現不能正常瀏覽的現象。此時安裝NetBEUI協議就會解決這個問題。
NetBEUI即NetBios Enhanced User Interface ,或NetBios增強用戶介面。它是NetBIOS協議的增強版本,曾被許多操作系統採用,例如Windows for Workgroup、Win 9x系列、Windows NT等。NETBEUI協議在許多情形下很有用,是WINDOWS98之前的操作系統的預設協議。NetBEUI協議是一種短小精悍、通信效率高的廣播型協議,安裝後不需要進行設置,特別適合於在「網路鄰居」傳送數據。所以建議除了TCP/IP協議之外,小型區域網的計算機也可以安上NetBEUI協議。另外還有一點要注意,如果一台只裝了TCP/IP協議的WINDOWS98機器要想加入到WINNT域,也必須安裝NetBEUI協議。
IPX/SPX協議本來就是Novell開發的專用於NetWare網路中的協議,但是現在也非常常用--大部分可以聯機的游戲都支持IPX/SPX協議,比如星際爭霸,反恐精英等等。雖然這些游戲通過TCP/IP協議也能聯機,但顯然還是通過IPX/SPX協議更省事,因為根本不需要任何設置。除此之外,IPX/SPX協議在區域網絡中的用途似乎並不是很大,如果確定不在區域網中聯機玩游戲,那麼這個協議可有可無。
FTP
FTP的作用
正如其名所示:FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算機上運行著FTP伺服器程序)察看遠程計算機有哪些文件,然後把文件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程計算機去。
FTP工作原理
拿下傳文件為例,當你啟動FTP從遠程計算機拷貝文件時,你事實上啟動了兩個程序:一個本地機上的FTP客戶程序:它向FTP伺服器提出拷貝文件的請求。另一個是啟動在遠程計算機的上的FTP伺服器程序,它響應你的請求把你指定的文件傳送到你的計算機中。FTP採用「客戶機/伺服器」方式,用戶端要在自己的本地計算機上安裝FTP客戶程序。FTP客戶程序有字元界面和圖形界面兩種。字元界面的FTP的命令復雜、繁多。圖形界面的FTP客戶程序,操作上要簡潔方便的多。
HTTP(Hypertext Transfer Protocol),即超文本傳輸協議。是WWW瀏覽器和WWW伺服器之間的應用層通訊協議。HTTP協議是基於TCP/IP之上的協議,它不僅保證正確傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪一部分內容首先顯示(如文本先與圖形)等等。
回答者:完美滴心碎 - 魔導師 十級 5-6 19:40
文件轉輸協議
回答者:408657119 - 經理 五級 5-6 19:41
什麼是FTP呢?FTP 是 TCP/IP 協議組中的協議之一,是英文File Transfer Protocol的縮寫。該協議是Internet文件傳送的基礎,它由一系列規格說明文檔組成,目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。簡單的說,FTP就是完成兩台計算機之間的拷貝,從遠程計算機拷貝文件至自己的計算機上,稱之為「下載(download)」文件。若將文件從自己計算機中拷貝至遠程計算機上,則稱之為「上載(upload)」文件。在TCP/IP協議中,FTP標准命令TCP埠號為21,Port方式數據埠為20。FTP協議的任務是從一台計算機將文件傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的操作系統無關。假設兩台計算機通過ftp協議對話,並且能訪問Internet, 你可以用ftp命令來傳輸文件。每種操作系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。
FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式。
1.ASCII傳輸方式:假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。
但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,它們可能是程序,資料庫,字處理文件或者壓縮文件(盡管字處理文件包含的大部分是文本,其中也包含有指示頁尺寸,字型檔等信息的非列印字元)。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝,不要對這些文件進行處理,這也是下面要講的二進制傳輸。
2.二進制傳輸模式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。
如果你在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。(在大多數計算機上,ASCII方式一般假設每一字元的第一有效位無意義,因為ASCII字元組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。
5. FTP的工作方式
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
下面介紹一個這兩種方式的工作原理:
Port模式FTP 客戶端首先和FTP伺服器的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,伺服器端通過自己的TCP 20埠連接至客戶端的指定埠發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive模式在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,然後FTP伺服器將通過這個埠進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以許多位於防火牆後或內網的FTP伺服器不支持PASV模式,因為客戶端無法穿過防火牆打開FTP伺服器的高端埠;而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP 20無法和內部網路的客戶端建立一個新的連接,造成無法工作.
如果你要是不知道怎麼用ftp下東西,那很好解決,只要是下一個ftp的軟體,比如flashfxp,ultraftp等等軟體,裡面輸入地址直接下載就是了。
如果你要是想建一個ftp的站點,你就要自己做軟體配置用server-u或者其他的軟體直接設置一下就可以
HTTP
WWW的核心——HTTP協議
眾所周知,Internet的基本協議是TCP/IP協議,目前廣泛採用的FTP、Archie Gopher等是建立在TCP/IP協議之上的應用層協議,不同的協議對應著不同的應用。
⑥ 幾個常用的MySQL性能測試工具
1、mysqlslap
安裝:簡單,裝了mysql就有了
作用:模擬並發測試資料庫性能。
優點:簡單,容易使用。
不足:不能指定生成的數據規模,測試過程不清楚針對十萬級還是百萬級數據做的測試,感覺不太適合做綜合測試,比較適合針對既有資料庫,對單個sql進行優化的測試。
使用方法:
可以使用mysqlslap --help來顯示使用方法:
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
--concurrency代表並發數量,多個可以用逗號隔開,concurrency=10,50,100, 並發連接線程數分別是10、50、100個並發。
--engines代表要測試的引擎,可以有多個,用分隔符隔開。
--iterations代表要運行這些測試多少次。
--auto-generate-sql 代表用系統自己生成的SQL腳本來測試。
--auto-generate-sql-load-type 代表要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
--number-of-queries 代表總共要運行多少次查詢。每個客戶運行的查詢數量可以用查詢總數/並發數來計算。
--debug-info 代表要額外輸出CPU以及內存的相關信息。
--number-int-cols :創建測試表的 int 型欄位數量
--auto-generate-sql-add-autoincrement : 代表對生成的表自動添加auto_increment列,從5.1.18版本開始
--number-char-cols 創建測試表的 char 型欄位數量。
--create-schema 測試的schema,MySQL中schema也就是database。
--query 使用自定義腳本執行測試,例如可以調用自定義的一個存儲過程或者sql語句來執行測試。
--only-print 如果只想列印看看SQL語句是什麼,可以用這個選項。
mysqlslap -umysql -p123 --concurrency=100 --iterations=1 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam --number-of-queries=10 --debug-info
或:
指定資料庫和sql語句:
mysqlslap -h192.168.3.18 -P4040 --concurrency=100 --iterations=1 --create-schema='test' --query='select * from test;' --number-of-queries=10 --debug-info -umysql -p123
要是看到底做了什麼可以加上:--only-print
Benchmark
Average number of seconds to run all queries: 25.225 seconds
Minimum number of seconds to run all queries: 25.225 seconds
Maximum number of seconds to run all queries: 25.225 seconds
Number of clients running queries: 100
Average number of queries per client: 0
以上表明100個客戶端同時運行要25秒
2、sysbench
安裝:
可以從http://sourceforge.net/projects/sysbench/ 下載
tar zxf sysbench-0.4.12.tar.gz
cd sysbench-0.4.12
./autogen.sh
./configure && make && make install
strip /usr/local/bin/sysbench
安裝時候可能會報錯,後來發現個好文 http://blog.csdn.net/icelemon1314/article/details/7004955 怕以後找不到,也貼過來吧
1.如果mysql不是默認路徑安裝,那麼需要通過指定--with-mysql-includes和--with-mysql-libs參數來載入mysql安裝路徑
2.如果報錯:
../libtool: line 838: X--tag=CC: command not found
../libtool: line 871: libtool: ignoring unknown tag : command not found
../libtool: line 838: X--mode=link: command not found
../libtool: line 1004: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1005: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
../libtool: line 2231: X-g: command not found
../libtool: line 2231: X-O2: command not found
那麼執行下根目錄的:autogen.sh文件,然後重新configure && make && make install
3.如果報錯:
sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
那麼執行下:
n -s /usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18 /usr/lib64/
4.如果執行autogen.sh時,報如下錯誤:
./autogen.sh: line 3: aclocal: command not found
那麼需要安裝一個軟體:
yum install automake
然後需要增加一個參數:查找: AC_PROG_LIBTOOL 將其注釋,然後增加AC_PROG_RANLIB
作用:模擬並發,可以執行CPU/內存/線程/IO/資料庫等方面的性能測試。資料庫目前支持MySQL/Oracle/PostgreSQL
優點:可以指定測試數據的規模,可以單獨測試讀、寫的性能,也可以測試讀寫混合的性能。
不足:測試的時候,由於網路原因,測試的非常慢,但是最終給的結果卻很好,並發支持很高,所以給我的感覺是並不太准確。當然也可能我沒搞明白原理
使用方法:
准備數據
sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=400000 --mysql-db=dbtest2 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd prepare
執行測試
sysbench --num-threads=100 --max-requests=4000 --test=oltp --mysql-table-engine=innodb --oltp-table-size=400000 --mysql-db=dbtest1 --mysql-user=root --mysql-host=192.168.1.101 --mysql-password=pwd run
sysbench 0.4.12: multi-threaded system evaluation benchmark
No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 4000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 56014
write: 20005
other: 8002
total: 84021
transactions: 4001 (259.14 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 76019 (4923.75 per sec.)
other operations: 8002 (518.29 per sec.)
Test execution summary:
total time: 15.4393s
total number of events: 4001
total time taken by event execution: 1504.7744
per-request statistics:
min: 33.45ms
avg: 376.10ms
max: 861.53ms
approx. 95 percentile: 505.65ms
Threads fairness:
events (avg/stddev): 40.0100/0.67
execution time (avg/stddev): 15.0477/0.22
3、tpcc-mysql
安裝:
如果從原網站上下載源碼比較麻煩,需要工具、注冊、生成證書等。這里提供一個下載包http://blog.chinaunix.net/blog/downLoad/fileid/8532.html
export C_INCLUDE_PATH=/usr/include/mysql
export PATH=/usr/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/mysql
cd /tmp/tpcc/src
make
然後就會在 /tmp/tpcc-mysql 下生成 tpcc 命令行工具 tpcc_load 、 tpcc_start
作用:測試mysql資料庫的整體性能
優點:符合tpcc標准,有標準的方法,模擬真實的交易活動,結果比較可靠。
不足:不能單獨測試讀或者寫的性能,對於一些以查詢為主或者只寫的應用,就沒有這么大的意義了。
使用方法:
載入數據
創建庫
mysql>create database tpcc10;
創建表:
shell>mysql tpcc10 < create_table.sql
添加外鍵:
shell>mysql tpcc10 < add_fkey_idx.sql
載入數據:
1、單進程載入:
shell>./tpcc_load 192.168.11.172 tpcc10 root pwd 300
|主機||資料庫||用戶||密碼||warehouse|
2、並發載入:(推薦,但需要修改一下)
shell>./load.sh tpcc300 300
|資料庫||warehouse|
3、測試
./tpcc_start -h192.168.11.172 -d tpcc -u root -p 'pwd' -w 10 -c 10 -r 10 -l 60 -i 10 -f /mnt/hgfs/mysql/tpcc100_2013522.txt
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '192.168.11.172'
option d with value 'tpcc'
option u with value 'root'
option p with value 'pwd'
option w with value '1'
option c with value '100'
option r with value '120'
option l with value '60'
option i with value '10'
option f with value '/mnt/hgfs/mysql/tpcc100_2013522.txt'
<Parameters>
[server]: 192.168.11.172
[port]: 3306
[DBname]: tpcc
[user]: root
[pass]: pwd
[warehouse]: 1
[connection]: 100
[rampup]: 120 (sec.)
[measure]: 60 (sec.)
RAMP-UP TIME.(120 sec.)
MEASURING START.
⑦ 性能測試工具有哪些
測試工具一般可分為白盒測試工具、黑盒測試工具、性能測試工具,另外還有用於測試管理(測試流程管理、缺陷跟蹤管理、測試用例管理)的工具,這些產品主要是MercuryInteractive(MI)、Segue、IBM Rational、 Compuware和Empirix等公司的產品,而MI公司的產品佔了主流。白盒測試工具白盒測試工具一般是針對代碼進行測試,測試中發現的缺陷可以定位到代碼級,根據測試工具原理的不同,又可以分為靜態測試工具和動態測試工具。靜態測試工具:直接對代碼進行分析,不需要運行代碼,也不需要對代碼編譯鏈接,生成可執行文件。靜態測試工具一般是對代碼進行語法掃描,找出不符合編碼規范的地方,根據某種質量模型評價代碼的質量,生成系統的調用關系圖等。
靜態測試工具的代表有:Telelogic公司的Logiscope軟體;PR公司的PRQA軟體。
動態測試工具:動態測試工具與靜態測試工具不同,動態測試工具的一般採用"插樁"的方式,向代碼生成的可執行文件中插入一些監測代碼,用來統計程序運行時的數據。其與靜態測試工具最大的不同就是動態測試工具要求被測系統實際運行。
動態測試工具的代表有:Compuware公司的DevPartner軟體;Rational公司的Purify系列等。黑盒測試工具黑盒測試工具適用於黑盒測試的場合,黑盒測試工具包括功能測試工具和性能測試工具。黑盒測試工具的一般原理是利用腳本的錄制(Record)/回放(Playback),模擬用戶的操作,然後將被測系統的輸出記錄下來同預先給定的標准結果比較。黑盒測試工具可以大大減輕黑盒測試的工作量,在迭代開發的過程中,能夠很好地進行回歸測試。
黑盒測試工具的代表有:Rational公司的TeamTest、Robot;Compuware公司的QACenter。性能測試工具專用於性能測試的工具包括有:Radview公司的WebLoad;Microsoft公司的 WebStress等工具;針對資料庫測試的TestBytes;對應用性能進行優化的EcoScope等工具。
MercuryInteractive的LoadRunner是一種適用於各種體系架構的自動負載測試工具,它能預測系統行為並優化系統性能。LoadRunner的測試對象是整個企業的系統,它通過模擬實際用戶的操作行為和實行實時性能監測,來幫助您更快的查找和發現問題。測試管理工具用於對測試進行管理。一般而言,測試管理工具對測試計劃、測試用例、測試實施進行管理,並且,測試管理工具還包括對缺陷的跟蹤管理。
測試管理工具的代表有:Rational公司的Test Manager;Compureware公司的TrackRecord;Mercury Interactive公司的TestDirector等軟體。 滿意的話請採納!
⑧ jmeter做登錄並發測試,資料庫連接數會增多麼或者是有別的工具可以跟蹤資料庫變化么
如果登陸需要通過資料庫驗證用戶信息,資料庫連接數會因為並發數的增加而增多。很多工具都可以檢測到變化,最常見的是使用 pl/sql developer 來查看。
⑨ sql sever2000和msde的區別
區別如下:
1、
MSDE
2000(SQL
Server
2000
Desktop
Engine)
是一個資料引擎,以
SQL
Server
技術為基礎所建構的。藉由單一處理器和雙處理器桌上型電腦的支援,MSDE
2000
就是一個非常可靠的儲存引擎和查詢處理器,可作為
企業應用
程式的桌面擴充程式。SQL
Server
和
MSDE
2000
之間共用的一般技術基礎,讓開發人員建置的應用程式,可以從手提式電腦順利地擴充至多處理器叢集。
2、
SQL
Server
是Microsoft
公司推出的
關系型資料庫管理系統
。具有使用方便可伸縮性好與相關
軟體集成
程度高等優點,可跨越從運行Microsoft
Windows
98
的膝上型電腦到運行Microsoft
Windows
2012
的大型多處理器的伺服器等多種平台使用。
Microsoft
SQL
Server
是一個全面的資料庫平台,使用集成的
商業智能
(BI)工具提供了企業級的數據管理。Microsoft
SQL
Server
資料庫引擎
為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。
⑩ 軟體測試的工具有哪些
1、禪道測試管理工具是功能比較全面的測試管理工具,功能涵蓋軟體研發的全部生命周期,為軟體測試和產品研發提供一體化的解決方案,是一款十分優秀的國產開源測試管理工具。
2、LoadRunner是一種預測系統行為和性能的工業標准級負載測試工具。通過模擬上千萬用戶實施並發負載及實時性能監測的方式來確認和查找問題,它能夠對整個企業架構進行測試。通過LoadRunner ,企業能最大限度地縮短測試時間,優化性能和加速應用系統的發布周期。它是一種適用於各種體系架構的自動負載測試工具,它能預測系統行為並優化系統性能。LoadRunner 的測試對象是整個企業的系統,它通過模擬實際用戶的操作行為和實時性能監測,來幫助更快地查找和發現問題。
3、QTP是一個B/S系統的自動化功能測試的利器,軟體程序測試工具。Mercury的自動化功能測試軟體QuickTest Professional ,可以覆蓋絕大多數的軟體開發技術,簡單高效,並具備測試用例可重用的特點。Mercury QuickTest Pro 是一款先進的自動化測試解決方案,用於創建功能和回歸測試。它自動捕獲、驗證和重放用戶的交互行為。 Mercury QuickTest Pro為每一個重要軟體應用和環境提供功能和回歸測試自動化的行業最佳解決方案。
4、Selenium是為正在蓬勃發展的web應用開發的一套完整的測試系統。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。它的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序是否能夠很好的在不同瀏覽器和操作系統上工作。測試系統功能——創建衰退測試檢驗軟體功能和用戶需求。支持自動錄制動作和自動生成。Selenium的核心Selenium Core基於JsUnit,完全由JavaScript編寫,因此可運行於任何支持JavaScript的瀏覽器上,包括IE、Mozilla Firefox、Chrome、Safari等。