開發與測試分析工具集錦(網絡摘要)不斷更新

1、測試工具
      (一)軟件測試工具
 
      (二)網絡分析工具
             一、TcpDump工具(網絡安全分析工具 ):抓包分析
                    tcpdump 是一個運行在命令行下的嗅探工具。它容許用戶攔截和顯示發送或收到過網絡鏈接到該計算機的TCP/IP和其餘數據包。tcpdump 是一個在BSD許可證下發布的自由軟件。
                    tcpdump是很是強大的網絡安全分析工具,能夠將網絡上截獲的數據包保存到文件以備分析。能夠定義過濾規則,只截獲感興趣的數據包,以減小輸出文件大小和數據包分析時的裝載和處理時間。
               tcpdump 適用於大多數的類Unix系統 操做系統:包括Linux、Solaris、BSD、Mac OS X、HP-UX和AIX 等等。在這些系統中,tcpdump 須要使用libpcap這個捕捉數據的庫。其在Windows下的版本稱爲WinDump;它須要WinPcap驅動,至關於在Linux平臺下的libpcap。
              二、Wireshark(網絡封包分析軟件 )
           一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,並儘量顯示出最爲詳細的網絡封包資料。Wireshark使用WinPCAP做爲接口,直接與網卡進行數據報文交換
           網絡管理員使用Wireshark來檢測網絡問題,網絡安全工程師使用Wireshark來檢查資訊安全相關問題,開發者使用Wireshark來爲新的通信協定除錯,普通使用者使用Wireshark來學習網絡協定的相關知識。
            WireShark是一種網絡協議分析工具,使用戶可以深刻分析網絡活動,涵蓋上百種協議以及各主要平臺,包括Windows,Linux,OS X,Solaris,FreeBSD 和 NetBSD。數十種抓包文件格式的讀寫功能,經過GUI或TTY-mode瀏覽數據
              三、Tcpreplay
              Tcpreplay是一系列工具的總稱,包括tcpreplay、tcprewrite和tcpprep等工具,它能夠用來在Unix系統或者linux系統上重放網絡包。這些包是由tcpdump、ethereal和wireshark等軟件抓取到的,即pcap格式的數據包。
               四、Fiddler(http協議調試代理工具 )
              Fiddler 是一個http協議調試代理工具,它可以記錄並檢查全部你的電腦和互聯網之間的http通信,設置斷點,查看全部的「進出」Fiddler的數據(指cookie,html,js,css等文件,這些均可以讓你胡亂修改的意思)。 Fiddler 要比其餘的網絡調試器要更加簡單,由於它不只僅暴露http通信還提供了一個用戶友好的格式。
              五、Hping(TCP/IP數據包組裝/分析工具 )
               Hping是一個命令行下使用的TCP/IP數據包組裝/分析工具,其命令模式很像Unix下的ping命令,可是它不是隻能發送ICMP迴應請求,它還能夠支持TCP、UDP、ICMP和RAW-IP協議,它有一個路由跟蹤模式,可以在兩個相互包含的通道之間傳送文件。Hping常被用於檢測網絡和主機,其功能很是強大,可在多種操做系統下運行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。
               主要功能編有:防火牆測試;實用的端口掃描;網絡檢測,能夠用不一樣的協議、服務類型(TOS)、IP分片;手工探測MTU(最大傳輸單元)路徑;
   先進的路由跟蹤,支持全部的協議;遠程操做系統探測;遠程的運行時間探測;TCP/IP堆棧審計
              六、HttpWatch( 網頁數據分析工具 )
HttpWatch是強大的網頁數據分析工具.集成在Internet Explorer工具欄.包括網頁摘要.Cookies管理.緩存管理.消息頭髮送/接受.字符查詢.POST 數據和目錄管理功能.報告輸出.HttpWatch 是一款可以收集並顯示深層信息的軟件。它不用代理服務器或一些複雜的網絡監控工具,就可以在顯示網頁同時顯示網頁請求和迴應的日誌信息。甚至能夠顯示瀏覽器緩存和IE之間的交換信息。集成在Internet Explorer工具欄。
只須要選擇相應的網站,軟件就能夠對網站與IE之間的需求回覆的通信狀況進行分析並在同一界面顯示其相應日誌記錄。每個HTTP記錄均可以詳細的分析其 Cookies、消息頭、字符查詢等信息。支持HTTPS及分析報告輸出爲XML、CSV等格式
           七、JDSU 網絡分析軟件標準版
     方便網絡專業人士排查網絡故障,告知誰在網絡上,誰在佔用帶寬,故障發生在何處。JDSU可分析潛在性能問題,並同時提供實時分析和更深刻的離線數據分析
  八、 TCP Traffic Analyzer開源網絡分析工具
       藉此分析網絡應用在服務器端與客戶端之間的運行狀態TCP Traffic Analyzer的幾個顯著分析功能包括:
        1持續時間超過(或者小於)某閾值的TCP鏈接數;二、嘗試次數超過N次才成功的TCP鏈接數。三、TCP鏈接持續時間和吞吐量的分佈狀況。
             四、 數據包超過N字節的TCP鏈接分佈狀況。五、持續時間在特定閾值內的IP地址和端口分佈狀況。
     九、Charles
   是一個HTTP 代理服務器 ,HTTP監視器,反轉代理服務器·它容許一個開發者查看全部鏈接互聯網的HTTP通訊·這些包括request, response現HTTP headers (包含cookies與caching信息)
 
   十、 tcpcopy
  tcpcopy是一種應用請求複製(基於tcp的packets)工具,其應用領域較廣,咱們曾經應用於網易的廣告投放系統,urs系統,nginx hmux協議開發等系統,避免了上線帶來的不少問題。
整體說來,tcpcopy主要有以下功能:
1)分佈式壓力測試工具,利用在線數據,能夠測試系統可以承受的壓力大小(遠比ab壓力測試工具真實地多),也能夠提早發現一些bug
2)對於後端的短鏈接,請求丟失率很是低(1/10萬),能夠應用於熱備份
3)普通上線測試,能夠發現新系統是否穩定,提早發現上線過程當中會出現的諸多問題,讓開發者有信心上線
4)對比試驗,一樣請求,針對不一樣或不一樣版本程序,能夠作性能對比等試驗
5)利用級聯tcpcopy,構造無限在線壓力,知足中小網站壓力測試要求
6)實戰演習(架構師必備)
若是你對上線沒有信心,若是你的單元測試不夠充分,若是你對新系統不夠有把握,若是你對將來的請求壓力沒法預測,tcpcopy能夠幫助你解決上述難題。
十一、 TCPView
          也是Windows下的神器,主要是查看當前的TCP鏈接、UDP鏈接狀態,也能夠斷開正在傳輸數據的鏈接。
          她除了平時測試、調試TCP等用到,有的時候還能發現一些     莫名奇妙的鏈接,那麼就該查查你的系統了
          十二、 sokit
           國人寫的一個TCP、UDP socket調試輔助工具,很是的好用,基於QT框架,因此在linux和windows下都能用,他能很方便的組裝二進制數據包,很方面的模擬分包、粘包。
          有客戶端、服務器、轉發器三種模式,轉發器實際上就是一個透明代理,原理和Fidder相似,因此能夠輕量級的進行抓包,固然不能斷點調試的啦。
       用這個玩意發現一個小bug,就是在發二進制包的時候[00,88] ,就這個中括號後面多了一個空格,
          也會被髮出去,有一次我在這裏栽了跟頭,固然在日誌中仔細查看可以看到完整的發出的包(這個故事告訴咱們,日誌很重要) http://blogread.cn/it/article/6365?f=wb
 
      (三)Java分析監測工具
             Java自帶的性能監測工具——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm
           (1)性能分析檢測工具
               1 DTrace
                     DTrace,也稱爲動態跟蹤,是由 Sun ™ 開發的一個用來在生產和試驗性生產系統上找出系統瓶頸的工具。 在任何狀況下它都不是一個調試工具, 而是一個實時系統分析尋找出性能及其餘問題的工具。DTrace 是個特別好的分析工具,帶有大量的幫助診斷系統問題的特性。 還可使用預先寫好的腳本利用它的功能。 用戶也能夠經過使用 DTrace D 語言建立他們本身定製的分析工具, 以知足特定的需求。
                   二、 JClarity - 性能檢測
目前提供了兩個工具:Illuminate and Censum。Illuminate 是一款性能檢測工具,而Censum 主要專一於垃圾收集日誌分析
主要功能:
 
故障檢測((Disk I/O,垃圾收集,死鎖等等)
操做建議 - 對故障提出解決建議,如"The application needs to increase the number of active threads".
解釋 - 給出問題出現的緣由,如"A high percentage of time spent paused in GC may mean that the heap has been under-sized".
  獨特之處:該工具和其餘性能監控工具之間的一個區別是,它簡化了問題報告並用簡單的英語描述了建議解決方案。
三、Scalasca並行程序性能分析
Scalasca 是一個用來分析並行程序的性能,並給出優化的建議
四、JRockit——任務管理

Oracle的JRockit是一套完整的Java SE解決方案,包含了一個高性能JVM、性能分析、監控和排錯工具。可用於預測Java程序中的延遲。javascript

如今,JRockit打包有一系列的稱爲JRockit任務控制(JRockit Mission Control)的工具。這些工具包括:一個用於管理的控制檯(console,譯者注:此console跟終端不同,是特指管理後臺系統),進行GC 數據可視化和其餘的一些性能統計。它一樣能夠做爲運行時性能分析工具Runtime Analyzer來使用,也能夠分析內存問題。
五、Patty
「Patty」 項目 是一個開源項目,能夠從Source Forge下載。它致力於爲Java 1.5.0和更高版本的虛擬機提供性能分析工具。與其餘性能分析工具不一樣之處在於,它專一性能分析,而且容許用戶在運行時開啓和關閉性能分析功能。

目前Patty正處於beta版階段,但隨着更多強大的功能如方法執行、代碼覆蓋、線程競爭(Thread Contention)分析的加入,Patty能夠用於(內存、CPU等)性能調優,而且能夠將信息經過TCP/IP Socket發送到其餘電腦上。
Patty有着易用的GUI,能夠用於分析堆。還能夠在Java編譯流程中的準備階段,對應用程序運行時對class進行 監測(instrument)和取消監測(de-instrument)
六、JProfiler
JProfiler集CPU、內存和線程性能分析於一體,能夠用於分析性能瓶頸、內存泄漏、CPU 負載和解決線程相關的問題,而且支持本地性能分析(分析與JProfiler軟件安裝在同一臺機的應用)和遠程性能分析(它能夠分析遠程沒有安裝 JProfiler機器上的應用),這一點對開發人員很是有用。 主要爲Java EE和Java SE應用所設計。
七、GC Viewer
GC Viewer 能夠(從主頁和Github) 免費獲取。GC Viewer是一個開源工具,
能夠對vmflags -verboase:gc和-Xloggc:等Java VM選項產生的數據進行可視化分析。
GC Viewer能夠用於計算GC(垃圾回收)相關的性能數據記錄,包括吞吐、累積暫停、最長時間的暫停等等。+
當你想要經過改變生成大小和設置初始堆大小來調 整某個特定應用的GC時,它尤爲有用
八、  ORM Profiler
旨在幫助提升數據訪問層性能的工具。它會跟蹤和記錄 ADO.NET 調用,以便開發者可對他們的數據訪問進行分析,進而發現其中的潛在問題。

ORM Profiler 可與任何用 DbProviderFactory 類構建的、用於對象關係映射(ORM)的數據訪問層一塊兒使用,並且適用於任何可經過數據訪問層使用的數據庫,包括 SQL Server、MS Access、Oracle、MySql、SQLite、PostgreSQL、以及 DB2。它支持 .NET Framework 3.5 和4.0。

Solutions Design 稱,在應用程序中只須要一行代碼即可激活 ORM Profiler,並且還可從用戶界面或命令行來激活它。雖然不是一款實時分析器,可是它會拍攝快照以備稍後使用。它會記錄各類數據庫調用,並以三種不一樣形式的視圖呈現出來:

當查看執行代碼視圖時,它容許用戶在 Visual Studio(或其餘代碼編輯器)中定位到相關的行;
按時間順序排列、根據事務分組的視圖;
以及根據查詢分組的視圖。
當某項記錄被選中時這些視圖彼此之間會保持同步,以便經過所有三種不一樣的方式對該查詢進行分析。ORM Profiler 還提供了從數據庫獲取查詢執行計劃的能力,並與查詢統計一塊兒顯示出來。

ORM Profiler 的其餘功能包括:

在同一時間支持多種形式的數據訪問,只要它們都使用 DbProviderFactory 就行
一次配置多個應用程序的能力
一個強大的篩選系統
只用一行代碼便可完成打開與關閉之間的切換配置
可配置的警報提示
有關 ORM Profiler 的更多細節可在其網站上找到。
 
 

          (2)內存檢測工具css

                    一、 Plumbr  內存泄漏檢測
               用Plumbr,它能夠檢測出應用程序的內存泄漏問題並提供切實可行的解決方案。  Plumbr是一款監控JVM的工具,能檢測的內存泄露,GC時間過長,線程鎖的狀況。
主要功能:
實時內存泄漏檢測和警報並提供泄漏的時間、大小、速度和重要性的報告代碼中內存泄漏的位置
獨特之處:快速定位泄漏點,並給出詳盡的解決方案,不再用擔憂內存泄漏問題啦~
                  二、 HeapAnalyzer
IBM的alphaWorks網站發佈的一款免費的JVM內存堆的圖形分析工具HeapAnalyzer,它能夠有效的列舉堆的內存使用情況,幫助分析Java內存泄漏的緣由
 
HeapAnalyzer能夠幫助你分析JVM內存堆的以下信息:
 
* List of Java heap leak suspects
* Recommendation of the size of kCluster
* List of gaps among allocated objects/classes/arrays
* Java objects/classes/arrays search engine
* List of objects/classes/arrays by type name
* List of objects/classes/arrays by object name
* List of objects/classes/arrays by address
* List of objects/classes/arrays by size
* List of objects/classes/arrays by size of child
* List of objects/classes/arrays by number of child
* List of objects/classes/arrays by frequency
* List of available heap spaces by size
* Tree view of Java heap dump
* Loading/saving processed Java heap dumps.
 
對於惱人的Java內存泄漏問題,HeadAnalyzer無疑是一把利器
             (3)錯誤跟蹤工具
                    一、Raygun  錯誤管理系統
Raygun是一款基於Web的錯誤管理系統,用於跟蹤應用程序異常。它支持多種桌面、移動和Web編程語言,包括Java、Scala、.NET、Python、PHP和JavaScript,其主要特色以下:
錯誤分組——同一Bug屢次出現會顯示在同一個組中;
全文搜索——錯誤組及全部收集到的數據都是可搜索的;
查看應用活動——錯誤組上的每一個動做都會展現給全部的團隊成員,如狀態更新、評論等;
受影響的用戶——每一個錯誤影響的用戶數;
外部集成——Github、Bitbucket、Asana、JIRA、HipChat等。
 
二、Sentry
Sentry是一個基於Web的開源解決方案,用於實時地事件日誌記錄和聚合,支持的語言包括Ruby、Python、JS、Java、Django、.NET等,其主要特色以下:
能夠實時查看新部署的影響;
在用戶訪問因錯誤而中斷時,能夠利用Sentry日誌向他提供支持,幫助他恢復訪問;
檢測並防止欺騙——好比,若是購買、身份驗證次數超出正常範圍,Sentry就會發出通知;
能夠集成GitHub、HipChat、Heroku等。
 
三、Takipi   錯誤追蹤和分析
Takipi是一個軟件即服務(SaaS)模型,使用Java代理實時地進行代碼分析及跟蹤代碼變化。它的大部分分析工做都是在雲上完成的,支持JVM語言,包括Java、Scala、Clojure、Groovy、JRuby、Jython等,其主要特色以下:
檢測——全部捕獲和未捕獲的異常、HTTP和日誌錯誤;
按優先級排序——錯誤在整個集羣中的發生頻率、是否包含新的或修改過的代碼、頻率是否在增長;
分析——查看具體代碼和變量狀態;
易於安裝;
系統資源開銷少於2%。
Takipi的目標很簡單:告訴開發者代碼崩潰的時間及緣由。不管在什麼時候發生異常,Takipi都會抓取到並給出分析報告。
 
四、Airbrake
Airbrake爲用戶提供了一個基於Web的界面,上面有一個儀表板,記錄了錯誤的詳細信息以及特定應用程序的視圖,支持的語言包括Ruby、PHP、Java、.NET、Python、Swift等,其主要特色以下:
詳細的堆棧跟蹤信息,根據錯誤類型、用戶和環境變量分組;
提升團隊生產力——從繁雜的信息中過濾出重要的錯誤;
團隊協做——查看哪位成員致使了Bug以及哪位成員正在進行修復;
外部集成——包括HipChat、 GitHub、JIRA、Pivotal等共30多種。
 
五、StackHunter
StackHunter是一款自託管的Java異常跟蹤工具,目前仍是測試版。它能夠將異常通知給開發者,並幫助他們更快地解決問題,其主要特色以下:能夠在單個自託管的Web界面上查看全部異常;
收集堆棧跟蹤數據和上下文信息,例如,異常、受影響的用戶、受影響的會話等;
在異常發生時當即發送警告郵件;
根據異常產生的根本緣由將其分組。
             (4)日誌記錄管理工具
                       一、  Loggly
Loggly 也是一個健壯的日誌分析工具,強調簡潔樸素讓開發者用起來方便
優勢
SL 注重的是企業級別的應用和安全性,而 Loggly 卻將重點放在了幫助開發者查找和修復操做性的問題上。由於操做界面很是友好,自定義性能和開發者儀表盤這種東西很是簡單。而且它的價格透明,入門方便。
缺點
不要奢望 Loggly 具有成熟的架構、安全和分析解決方案。Loggly 不具有取證和監控基礎架構,它僅僅是幫助開發者處理應用服務器數據的一個工具。除此以外的其餘事情就須要你本身去作了。
 
(三)源碼分析工具
          一、 Source-Navigator
Source-Navigator是原來redhat開發的一個源代碼管理分析工具,它能夠在Windows,Linux等多種平臺下工做。功能相似於windows下的Sourceinsight,它能夠顯示類,函數以及成員之間的關係,對閱讀分析源代碼機器有用。
Source-Navigator 支持C, C++, Java, Tcl, [incr Tcl], FORTRAN 和 COBOL, 而且提供SDK給開發者開發本身的語言解析器
你可使用Source-Navigator:
      • 分析某處源碼的變化對其餘模塊的影響
      • 查找某個函數被調用的地方
      • 查找全部包含某個頭文件的文件
      • 利用grep工具在源碼中進行搜索
Source-Navigator 是基於 GNU Public License 的
   二、Source insight 
               Source Insight是一個面向項目開發的程序 編輯器 和代碼瀏覽器,它擁有內置的對C/C++, C#和Java等程序的分析。能分析 源代碼 並在工     做的同時動態維護它本身的符號數據庫,並自動顯示有用的上下文信息
       Source Insight不只僅是一個強大的程序 編輯器 ,它還能顯示reference trees,class inheritance diagrams和call trees。Source Insight提供了最快速的對 源代碼 的導航和任何程序編輯器的源信息。 Source Insight提供了快速和革新的訪問源代碼和源信息的能力。與衆多其它編輯器產品不一樣
 
(四)Web應用性能測試
一、javamelody
爲了提高應用的性能咱們可能須要作不少分析和優化。但具體從哪裏優化,優化的效果是多少就難以斷定了。
 
javamelody用嵌入式的監控方式,實時監控性能指標。如:頁面相應時間,spring bean方法調用時間,sql語句執行時間等不少指標。我在這就不一一列舉了。
 
我感受比較好的兩特色是:
會自動按命中次數與相應時間結合排序,這就能夠知道優化哪一個頁面,bean方法,sql最有效果
頁面,bean,sql自動關聯,可鑽取,點頁面能夠看頁面中調用bean方法的狀況,點bean方法能夠看sql狀況
                    二、 FunkLoad
                    FunkLoad是一個功能和負載的Web測試儀,主要的用於Web項目(進行迴歸測試),性能測試,負載測試(如音量的測試或壽命測試),壓力測試的 功能。它也能夠用來編寫Web代理腳本的任何Web重複性的任務。 FunkLoad 是一個網站項目的功能、性能測試工具。
(五)代碼質量分析工具
     一、 Logiscope     
Logiscope有三項主要功能,以三個獨立工具的形式出現,分別是:
軟件質量分析工具 - Audit;
代碼規範性檢測工具 - Rulechecker;
測試覆蓋率統計工具 - TestChecker。
Audit和Rulechecker提供了對軟件進行靜態分析的功能,TestChecker提供了測試覆蓋率統計的功能。
Logiscope能夠對多種語言實現的代碼進行分析,好比C、C++、Java、Ada,等等。下面的內容與具體的語言基本是沒有關係的,但若是某些地方確實要涉及具體的語言,則我都是以C++爲例。
 
      二、 SonarQube
                    SonarQube(曾用名Sonar)是一個開源的代碼質量管理系統。
      三、FindBugs
            FindBugs是由Bill Pugh和David Hovemeyer建立的開源程序,用來查找Java代碼中的程序錯誤。它使用靜態分析來識別Java程序中上百種不一樣類型的潛在錯誤。
潛在錯誤可分爲四個等級:恐怖的(scariest)、嚇人的(scary)、使人困擾的(troubling)和值得關注的(of concern),這是根據其可能產生的影響或嚴重程度,而對開發者的提示。[4]FindBugs操做的是Java字節碼,[3]而非源代碼。軟件做爲一個獨立的圖形化應用程序分發。[5] Eclipse[6]、NetBeans[7]、IntelliJ IDEA[8][9][10]、Gradle、Hudson[11]和Jenkins[12]有可用的FindBugs插件。
也能夠給FindBugs添加用於檢查的規則集。
(六)javascript測試工具
      一、 OneHeap
          OneHeap 關注於運行中的 JavaScript 內存信息的展現,用可視化的方式還原了 HeapGraph,有助於理解 v8 內存管理
相關文章
相關標籤/搜索