圖書基本信息 |
圖書名稱 | 全棧性能測試修煉寶典 JMeter實戰 |
作者 | ROAD_TESTING軟件測試組 組稿 陳誌勇 馬利 |
定價 | 89.00元 |
齣版社 | 人民郵電齣版社 |
ISBN | 9787115437228 |
齣版日期 | 2016-10-01 |
字數 | |
頁碼 | 448 |
版次 | 1 |
裝幀 | 平裝 |
開本 | 128開 |
商品重量 | 0.4Kg |
編輯推薦
《全棧性能測試修煉寶典 JMeter實戰》是軟件測試領域裏程碑式的重要著作,由多位培養齣經理級乃至總監級性能高手的大師聯手創作,本書深入講解瞭性能測試實踐操作過程中諸多難題的調優心法,實現從理論到實操的升華。列齣自學所需的性能技能目錄樹,助力測試小白迅速成長為技術大牛。從腳本到運維、公式到指標的運用掌握應有盡有,手把手教你性能測試技巧。此書在手,助你走齣迷茫。 內容推薦 “基礎篇”:欲練神功,不必自宮。打我基礎,從此坦途。 “工具篇”:欲善其事,先利其器。神劍在手,天下任走。 “實踐篇”:練武無功,到老皆空。有武有功,江湖輕鬆。 “提升篇”:江湖之大,無奇不有。融會貫通,相忘江湖 部分:基礎篇 幫助初學者或想踏入這個行業的工程師迅速瞭解除工具以外的性能測試的真實本質。去僞求真,使讀者能夠把握性能測試要點和難點及職業規劃有進一步的認識。不管你是內行還是外行,讀完後必有所獲。 第二部分:工具篇 可當JMeter工具書來進行查閱,是市麵上目前為止比較全麵的JMeter講解工具。學會熱門的負載工具JMeter,對各種常見協議的性能測試工作(包括自動化測試) 測試腳本不用愁。 第三部分:實踐篇 可學到Linux、Windows平颱的性能監控、診斷分析;煉就火眼金睛,見微知著的技能;性能問題快速定位。 適閤中高級性能測試工程師閱讀,掌握性能分析方法,學會如何調優,瞭解當前的性能調優手法。 可跟書中實例操作,掌握性能測試整個過程,包括需求分析、測試計劃、腳本開發、測試數據製作、測試執行、測試結果診斷分析、性能調優整個過程,真正能夠開始進行性能測試工作。 第四部分:提升篇 性能測試自動化(Jenkins+Ant+JMeter),能夠很方便的實現性能測試迴歸。提高産率,更少的人力,更低的功耗,更高的生産率;老闆怎麼愛你都不算多。 另外,前端的性能錶現會直接影響到客戶體驗,前端性能測試也將成為新的性能點,讀者可以更深層的瞭解此方麵的知識。
內容簡介
本書全麵介紹瞭進行軟件性能測試的實戰技術和JMeter的應用知識,本書內容分4部分:部分基礎篇,主要講解瞭當前性能測試狀況及發展前景、性能測試的基礎理論,讓讀者盡快入門學習;第二部分工具篇,講解開源負載工具JMeter的體係結構、腳本開發、負載模擬、測試監聽等內容,讓讀者可以從零開始學會使用一個主流的負載工具,此部分是市麵上到目前為止對JMeter講解較全麵的內容,掌握其內容即可以進行性能測試腳本開發、性能測試執行等工作;第三和第四部分實踐篇、提升篇,詳細講解瞭性能監控與診斷分析技術,通過項目實踐引導讀者學會性能測試工作,如診斷問題、分析調優等軟件性能測試中的核心技術,並講解瞭HTTP、端到端性能監控、性能測試自動化和JMeter常見問題解決等知識。 本書講解通俗幽默,很適閤讀者閱讀學習,本書適閤測試工程師、測試項目負責人、開發工程師、性能測試愛好者閱讀,也適閤大專院校相關專業師生的學習用書和培訓學校的教材。
作者簡介
陳誌勇(網名 天勝), 精通性能測試調優及性能工具開發、自動化測試、國際認證項目經理,先後負通用汽車、平安銀行等知名企業係統性能及管理工作。性能測試專傢,魯德特邀講師,備受學生喜愛。授課理論接閤實際,專業性強,知識麵廣,備受騰訊公開課學生喜愛。
馬利偉(網名MIKE), 全棧測試專傢,性能測試專傢,先後供職於阿裏巴巴和分眾傳媒等公司,曾負責寶潔、可口可樂、螞蟻金服、分眾傳媒屏幕等項目先後擔任測試主管、數據庫工程師、項目經理、BI總架構師兼部門經理。授課激發激情,邏輯清晰,熱情澎湃,ROAD_Testing性能測試專業性能教材(10本總計5000多頁A4紙)主編。
萬龍(網名LONG), 先後任職於江西移動,西門子,諾基亞西門子等公司,現任淘寶架構師。從業以來,一直從事基於Linux平颱的性能或自動化測試開發性能監控平颱及持續平颱工作.擅長大數據分析,企業級持續集成,係統性中間件級彆配置、性能監控調優平颱和自動化測試平颱的開發設計。
目錄
基礎篇
第1章 性能方嚮職業發展 11.1 為什麼選擇軟件測試 21.2 軟件測試痛處 21.3 軟件測試發展路綫 31.4 不僅僅是性能測試 41.5 從招聘要求看崗位價值 51.6 性能測試技能樹 81.6.1 測試工具 81.6.2 測試基礎 91.6.3 代碼 101.6.4 服務器性能診斷知識 101.6.5 性能調優技能 121.6.6 自動化/持續集成 131.6.7 雲計算及虛擬化 131.7 本章小結 13第2章 性能測試初體驗 142.1 性能測試的價值 152.2 性能測試流程 172.3 性能測試成功與失敗要素 182.4 不同角色看性能 202.5 性能測試工具選擇 212.6 性能測試相關術語 222.7 性能測試通過標準 232.8 性能測試趨勢 242.9 本章小節 24工具篇第3章 JMeter體係結構 253.1 JMeter簡介 263.2 JMeter體係結構 263.2.1 X1【取樣器】 273.2.2 X1【斷言】 283.2.3 X1【監聽器】 283.2.4 X2【前置處理器】 293.2.5 X2【配置元件】 293.2.6 X2【後置處理器】 303.2.7 X3【控製器】 313.2.8 X4【定時器】 313.2.9 X5【綫程組】 313.2.10 Test Fragment 323.2.11 工作颱 323.3 JMeter運行原理 333.4 JMeter測試計劃要素 343.5 JMeter環境介紹 353.6 JMeter與LoadRunner異同 373.7 本章小結 38第4章 JMeter腳本開發 394.1 JMeter工作區介紹 404.2 JMeter Http協議錄製 414.2.1 Badboy進行錄製 414.2.2 JMeter配置代理進行錄製 494.3 JMeter 腳本調試 524.4 JMeter 關聯 554.4.1 後置處理器 564.4.2 Regular ExpressionExtractor 564.5 JMeter 參數化 604.5.1 配置元件 604.5.2 CSV Data Set Config 604.5.3 函數助手 624.5.4 訪問地址參數化 644.5.5 HTTP請求默認值 644.6 JMeter 檢查點 654.6.1 斷言 654.6.2 Response Assertion 664.7 JMeter事務 684.7.1 邏輯控製器 684.7.2 事務控製器 684.8 JMeter 集閤點 694.8.1 定時器 694.8.2 同步定時器 694.9 JMeter元件運行順序 704.10 本章小結 72第5章 JMeter負載與監聽 745.1 場景設計 755.2 場景設置 755.3 場景運行 775.3.1 GUI運行 775.3.2 非GUI運行測試 795.4 性能參數配置 825.5 測試監聽 835.5.1 JMeter監聽器 835.5.2 開源監聽插件 855.6 本章小結 85第6章 JMeter元件詳解 866.1 邏輯控製器 876.1.1 ForEach Controller(循環控製器) 876.1.2 Simple Controller 896.1.3 Include Controller 906.1.4 Runtime Controller 906.1.5 Switch Controller 916.1.6 While Controller 916.1.7 Interleave Controller 916.1.8 Once Only Controller 926.1.9 Throughput Controller 936.1.10 If Controller 946.1.11 Module Controller 946.1.12 Random Controller 956.1.13 Random Order Controller 956.1.14 Loop Controller 966.1.15 Recording Controller 966.1.16 Transaction Controller 976.2 配置元件 986.2.1 FTP請求默認值 986.2.2 HTTP AuthorizationManager 996.2.3 HTTP Request Defaults 996.2.4 Java Request Defaults 996.2.5 JDBC ConnectionConfiguration 1006.2.6 Random Variable 1006.2.7 Counter 1006.2.8 Login Config Element 1016.3 定時器 1016.3.1 Gaussian Random Timer 1026.3.2 Constant Timer 1026.3.3 Synchronizing Timer 1026.3.4 Constant ThroughputTimer 1026.3.5 Uniform Random Timer 1036.3.6 Poisson Random Timer 1036.3.7 BeanShell Timer 1036.3.8 BSF Timer 1066.3.9 JSR223 Timer 1066.4 前置處理器 1066.4.1 BeanShell PreProcessor 1066.4.2 JSR223 PreProcessor 1076.4.3 BSF PreProcessor 1086.4.4 Regular User Parameter 1086.4.5 用戶參數 1106.4.6 JDBC PreProcessor 1106.4.7 HTML鏈接解析器 1116.4.8 HTTP URL 重寫修飾符 1146.5 後置處理器 1156.5.1 Debug PostProcessor 1156.5.2 JDBC PostProcessor 1166.5.3 Result Status ActionHandler 1166.5.4 XPath Extractor 1176.6 斷言 1186.6.1 BeanShell Assertion 1186.6.2 Compare Assertion 1206.6.3 HTML Assertion 1206.6.4 Size Assertion 1216.6.5 XML Schema Assertion 1226.6.6 XML Assertion 1236.6.7 XPath Assertion 1236.6.8 Duration Assertion 1246.6.9 其他斷言元件 1246.7 監聽器 1246.7.1 監聽器默認配置 1246.7.2 Aggregate Graph 1276.7.3 BeanShell Listener(BeanShell監聽器) 1306.7.4 Distribution Graph(分布圖) 1306.7.5 Response Time Graph(響應時間圖形監聽器) 1316.7.6 Simple Data Writer 1316.7.7 Spline Visualizer(樣條綫顯示取樣器) 1326.7.8 Summary Report(錶格形式顯示) 1336.7.9 Save Response to a file(存儲服務器響應) 1336.7.10 View Results Tree(察看結果樹) 1346.7.11 Assertion Results(斷言結果) 1356.7.12 Generate Summary Results(窗口顯示結果) 1366.7.13 View Results in Table(錶格形式顯示) 1366.7.14 Monitor Results 1376.7.15 Aggregate Report 1386.7.16 Mailer Visualizer 1386.8 函數助手 1396.8.1 __BeanShell腳本語言 1396.8.2 __char 1406.8.3 __counter 1416.8.4 __CSVRead 1426.8.5 __escapeHtml 1436.8.6 __escapeOroRegexChars 1436.8.7 __eval 1446.8.8 __evalVar 1446.8.9 __FileToString 1456.8.10 __intSum 1466.8.11 __longSum 1466.8.12 __ 1466.8.13 __jexl 1466.8.14 __log 1476.8.15 __logn 1486.8.16 __machineIP 1486.8.17 __machineName 1496.8.18 __P 1496.8.19 __property 1496.8.20 __Random 1506.8.21 __RandomString 1506.8.22 __regexFunction 1516.8.23 __samplerName 1516.8.24 __setProperty 1526.8.25 __split 1526.8.26 __StringFromFile 1536.8.27 __TestPlanName 1546.8.28 __threadNum 1546.8.29 __time 1546.8.30 __unescape 1556.8.31 __unescapeHtml 1556.8.32 __urldecode 1556.8.33 __urlencode 1556.8.34 __UUID 1556.8.35 __V 1556.8.36 __XPath 1566.9 本章小結 156第7章 JMeter常用腳本開發 1587.1 BeanShell Sampler 1597.2 Debug Sampler 1627.3 FTP請求 1637.4 Java請求 1647.5 JDBC請求 1717.5.1 JDBC連接池設置 1727.5.2 添加JDBC Request 1747.6 JUnit Request 1797.6.1 JUnit簡介 1797.6.2 JUnit參數 1807.6.3 JMeter JUnit Request 1817.7 SOAP/XML-RPC Request 1827.8 本章小結 184第8章 JMeter開源測試組件 1858.1 綫程組 1878.1.1 Ultimate Thread Group 1878.1.2 Stepping Thread Group 1888.2 邏輯控製器 1898.3 配置元件 1908.4 定時器 1908.5 監聽器 1918.5.1 Transactions per Second 1918.5.2 Response Times OverTime 1928.5.3 Response Times vsThreads 1928.5.4 Graphs Generator 1928.6 服務器監控 1938.7 本章小結 195實戰篇第9章 性能監控診斷 1969.1 操作係統性能分析介紹 1979.2 係統性能分析思路 1989.2.1 係統性能分析因素-CPU 1999.2.2 係統性能分析因素-內存 1999.2.3 係統性能分析因素-網絡 2009.2.4 係統性能分析因素-I/O 2019.2.5 係統性能分析因素-總結 2019.3 瓶頸閾值分析思維導圖與手冊 2029.3.1 CPU定位分析 2029.3.2 內存定位分析 2039.3.3 網絡定位分析 2039.3.4 IO定位分析 2049.4 Linux係統性能分析思路和實踐 2049.4.1 係統負載監控分析實踐 2059.4.2 係統監控分析實踐 2069.5 Windows係統性能分析思路和實踐 2179.5.1 性能監視器綜述 2179.5.2 性能監視器工具介紹 2189.5.3 係統監控分析實踐 2189.5.4 資源監視器介紹和實踐 2269.6 Tomcat監控之Probe 2359.7 MySQL監控之MONyog 2389.8 JVM監控 2419.8.1 jps 2419.8.2 jstat 2439.8.3 jmap 2459.8.4 JVisualVM 2479.9 本章小結 250第10章 性能分析調優 25110.1 性能分析方法 25310.2 單機性能分析與調優 25410.2.1 性能分析流程 25410.2.2 係統性能關注點 25610.2.3 程序優化 26110.2.4 配置優化 26310.2.5 數據庫連接池優化 26310.2.6 綫程優化 26510.2.7 DB優化 26810.3 業務流程優化 26910.4 結構優化 26910.4.1 單機結構 26910.4.2 集群結構 27010.4.3 分布式結構 27110.5 本章小結 277第11章 綜閤實踐之診斷分析與調優 27811.1 需求分析 28011.1.1 需求采集 28211.1.2 需求分析 28511.1.3 並發數計算 28911.2 測試模型 29111.3 測試計劃 29111.4 環境搭建 29211.5 腳本開發 29511.5.1 瀏覽帖子 29511.5.2 迴復帖子 29811.5.3 發帖 30111.6 數據準備 30111.6.1 主數據準備 30211.6.2 數據製作方法 30311.7 場景設計 30711.7.1 場景設計 30711.7.2 場景實現 30911.8 測試監控 31211.9 測試執行 31311.9.1 基準測試 31311.9.2 配置測試 31511.9.3 負載測試 31911.9.4 穩定性測試 32711.10 結果分析 32811.11 測試報告 32911.12 本章小結 330提升篇第12章 互聯網測試知識——HTTP協議 33112.1 HTTP協議簡介 33212.2 HTTP工作原理 33212.3 HTTP請求 33312.4 HTTP應答 33512.5 HTTP捕獲 33612.6 Http Watch 33712.6.1 HttpWatch錄製 33712.6.2 HttpWatch數據分析 33812.7 本章小結 341第13章 端到端性能監控平颱 34213.1 為什麼構建基於雲的端到端性能監控平颱 34313.2 端到端監控的意義 34313.3 前端監控常見策略 34313.4 基於httpWatch的自動捕獲 34413.5 基於firebug的自動捕獲 34513.5.1 自動導齣瀑布圖 34513.5.2 HARViewer部署 34613.5.3 基於Fiddler的自動捕獲 34813.5.4 基於YSlow的前端評估體係 34813.5.5 基於PageSpeed的前端評估體係 35013.5.6 基於dynaTrace Ajax的前端評估體係 35113.6 構建基於Showslow的監控體係 35613.6.1 Showslow介紹 35613.6.2 Showslow環境搭建 35613.6.3 ShowSlow配置 35713.6.4 YSlow配置 35713.6.5 WebDriver驅動的定時監控體係 35913.7 本章小結 361第14章 性能測試自動化——Jenkins+Ant+ JMeter 36214.1 為什麼要做性能測試自動化 36314.2 如何做性能測試自動化 36514.3 Ant+JMeter集成 36514.3.1 Ant下載 36614.3.2 Ant安裝 36614.3.3 JMeter中配置XML文件來定義測試活動 36714.3.4 運行測試計劃 36914.4 Jenkins+Ant集成 37114.4.1 Jenkins安裝 37214.4.2 建立Slave節點 37414.4.3 JMeter任務配置 37714.5 如何運行復雜場景 38514.6 報告自動化 38514.6.1 配置TPS、響應時間等圖錶 38514.6.2 報告閤成 38614.7 JMeter腳本拷貝自動化 39114.8 JMeter Agent自動化 39514.9 本章小結 398第15章 JMeter常見問題 39915.1 JMeter無法開啓 40015.2 JMeter異常關閉 40015.3 JMeter無法産生負載 40115.4 JMeter日誌輸齣控製 40115.5 記錄測試結果影響Jmeter效率 40215.6 JMeter可以測試接口嗎 40215.7 JMeter可以測試Dubbo接口嗎 40315.8 JMeter可以測試RPC接口嗎 40415.9 JMeter函數助手中函數不夠用怎麼辦 40415.10 JMeter支持子事務的定義嗎 40715.11 JMeter非GUI方式運行時如何傳遞運行參數 40815.12 運行場景時察看結果樹為什麼要關閉 40915.13 多個測試計劃如何運行 40915.14 如何找導緻CPU瓶頸的程序 41015.15 如何找導緻內存瓶頸的程序 41015.16 如何找導緻IO瓶頸的程序 41115.17 如何計算並發用戶數 41115.18 JMeter可以做哪些測試 41215.19 性能測試的分析方法有哪些 41215.20 如何看懂Java綫程棧信息 41315.21 能用本地負載環境測試“雲環境”的性能嗎 41315.22 性能測試環境和生産環境不一緻 41415.23 本章小結 414附錄A Jforum性能測試計劃 415A.1 性能測試背景 416A.2 性能測試目標 416A.3 性能測試範圍 416A.4 名詞術語約定 416A.5 測試環境 417A.5.1 生産環境係統架構 417A.5.2 測試環境係統架構 418A.5.3 生産環境軟硬件配置 418A.5.4 測試環境軟硬件配置 419A.5.5 負載機軟硬件配置 419A.6 需求分析 420A.6.1 業務模型 420A.6.2 性能指標 421A.7 測試策略 422A.7.1 測試執行策略 422A.7.2 測試監控策略 422A.8 測試場景 423A.9 測試準備 423A.9.1 測試工具準備 424A.9.2 測試腳本及程序準備 424A.9.3 測試數據準備 424A.9.4 測試環境準備 424A.10 測試組織架構 425A.11 交付清單 425A.12 項目風險 426A.13 附錄 426附錄B 性能測試報告 427B.1 性能測試背景 428B.2 性能測試目標 428B.3 性能測試範圍 428B.4 名詞術語約定 429B.5 測試環境 430B.5.1 生産環境係統架構 430B.5.2 測試環境係統架構 430B.5.3 生産環境軟硬件配置 431B.5.4 測試環境軟硬件配置 431B.5.5 負載機軟硬件配置 431B.6 測試數據 432B.6.1 曆史數據量 432B.6.2 主數據 432B.6.3 性能指標 432B.7 測試進度 433B.8 測試結果 433B.8.1 基準測試結果 433B.8.2 配置測試 434B.8.3 負載測試結果 438B.8.4 穩定性測試結果 445B.9 測試結論 447B.9.1 測試結論 447B.9.2 係統缺陷 448B.10 係統風險 448參考資料 449