Mountebank微服務測試( 簡體 字) | |
作者:[美] 布蘭登·貝耶斯(Brandon Byars)著 王超 譯 | 類別:1. -> 程式設計 -> 綜合 |
出版社:清華大學出版社 | 3dWoo書號: 52269 詢問書籍請說出此書號! 有庫存 NT售價: 400 元 |
出版日:1/1/2020 | |
頁數:208 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302540892 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第Ⅰ部分起步
第1章測試微服務3 1.1微服務刷新器4 1.1.1微服務路徑5 1.1.2微服務和組織結構7 1.2端到端測試的問題9 1.3了解服務虛擬化10 1.3.1使用API逐個設置測試12 1.3.2使用持久數據存儲12 1.3.3記錄和重放13 1.4mountebank介紹14 1.5服務虛擬化工具生態系統18 1.6本章小結19 第2章體驗mountebank21 2.1設置示例22 2.2HTTP和mountebank:入門23 2.3虛擬化產品目錄服務26 2.4第一個測試31 2.5本章小結38 第Ⅱ部分使用mountebank 第3章使用屏蔽響應進行測試43 3.1屏蔽響應的基礎44 3.1.1默認響應45 3.1.2了解默認響應的工作方式48 3.1.3更改默認響應49 3.1.4循環響應50 3.2HTTPSimposter52 3.2.1設置可信的HTTPSimposter55 3.2.2使用相互身份驗證57 3.3在配置文件中保存響應58 3.4本章小結62 第4章使用謂詞發送不同的響應65 4.1謂詞基礎66 4.1.1謂詞的類型68 4.1.2匹配對象請求字段73 4.1.3deepEquals謂詞74 4.1.4匹配多值字段75 4.1.5exists謂詞77 4.1.6連接點78 4.1.7謂詞類型的完整列表79 4.2參數化謂詞80 4.3在JSON值中使用謂詞80 4.3.1使用直接JSON謂詞81 4.3.2使用JSONPath選擇JSON值81 4.4選擇XML值83 4.5本章小結86 第5章添加記錄/重放行為87 5.1設置代理87 5.2生成正確的謂詞91 5.2.1使用predicateGenerators創建謂詞91 5.2.2添加謂詞參數93 5.3為同一請求捕獲多個響應96 5.4重放代理的方法100 5.5配置代理101 5.5.1使用相互身份驗證102 5.5.2添加自定義標題103 5.6代理用例104 5.6.1使用代理作為回退104 5.6.2將HTTPS轉換為HTTP106 5.7本章小結107 第6章mountebank編程109 6.1創建自己的謂詞110 6.2創建自己的動態響應115 6.2.1添加狀態116 6.2.2添加異步118 6.2.3確定響應與謂詞注入之間的關系127 6.3注意:安全很重要127 6.4調試提示128 6.5本章小結129 第7章添加行為131 7.1理解行為131 7.2修飾一個響應132 7.2.1使用decorate函數133 7.2.2為保存的代理響應添加修飾134 7.2.3通過shellTransform添加中間件137 7.3為響應添加延遲139 7.4多次重復響應140 7.5替換響應中的內容141 7.5.1將請求數據復制到響應141 7.5.2從外部數據源查找數據148 7.6完整的行為列表152 7.7本章小結152 第8章協議153 8.1協議在mountebank中的工作方式154 8.2TCP入門155 8.3存根基于文本的TCPRPC156 8.3.1創建基本的TCPimposter157 8.3.2創建TCP代理159 8.3.3匹配和操作XML載荷160 8.4二進制支持161 8.4.1使用二進制模式進行Base64編碼162 8.4.2在二進制模式下使用謂詞163 8.5虛擬化.NET遠程服務164 8.5.1創建簡單的.NETRemoting客戶端164 8.5.2虛擬化.NETRemoting服務器167 8.5.3如何告訴mountebank消息結束的位置171 8.6本章小結175 第Ⅲ部分關閉循環 第9章微服務的安全179 9.1一個持續的交付刷新器179 9.1.1基于微服務的CD測試策略181 9.1.2將測試策略映射到部署管道183 9.2創建測試管道184 9.2.1創建單元測試186 9.2.2創建服務測試189 9.2.3平衡服務虛擬化與合約測試193 9.2.4探索性測試196 9.3本章小結198 第10章mountebank性能測試199 10.1為什么服務虛擬化支持性能測試200 10.2定義你的場景202 10.3捕獲測試數據203 10.3.1捕獲響應204 10.3.2捕捉實際延遲206 10.3.3模擬隨機的延遲波動207 10.4運行性能測試207 10.5擴展mountebank210 10.6本章小結212 《Mountebank微服務測試》主要介紹如何使用mountebank測試微服務,通過閱讀,可以深入了解mountebank的全部功能以及服務虛擬化的適用范圍。無論是微服務系統的開發工程師,還是進行QA或者性能測試的測試工程師,以及將客戶需求轉換為實際可執行項目的解決方案架構師,都適合閱讀。
1. 服務虛擬化的核心概念; 2. 使用屏蔽響應進行測試; 3.mountebank編程; 4.性能測試。 我用mountebank編寫了測試微服務的程序,展示了服務虛擬化如何幫助你測試微服務,以及mountebank如何成為一個強大的服務虛擬化工具。這就需要對mountebank有一個深入的了解。《Mountebank微服務測試》的中間部分專門討論這個主題,但是許多經驗都適用于任何服務虛擬化工具。
《Mountebank微服務測試》讀者對象 mountebank是一種對開發人員友好的工具,它使開發人員成為使用mountebank測試微服務的主要受眾。希望讀者對測試自動化有一些了解,但是我避免在《Mountebank微服務測試》中使用任何高級語言特性來重點關注工具和方法。自動化友好的QA測試人員也會發現《Mountebank微服務測試》的價值,那些專門從事性能測試的人員也是如此。最后,服務虛擬化越來越成為一個體系結構問題,在這些頁面中,我希望為解決方案架構師提供正確決策所需的論據。 《Mountebank微服務測試》內容安排 《Mountebank微服務測試》分為三部分10章。 ● 第Ⅰ部分介紹了分布式系統的總體測試原理。 第1章簡要介紹了微服務,并對傳統的端到端測試進行了評論。它有助于解釋服務虛擬化如何適應微服務的世界,并為mountebank提供一個心理模型。 第2章建立了一個示例體系結構,我們將在《Mountebank微服務測試》中反復討論,并展示如何使用mountebank來自動執行確定性測試,盡管它是分布式體系結構。 ● 第Ⅱ部分深入介紹mountebank,讓你全面了解它的功能。 第3章提供了了解HTTP和HTTPS環境中基本mountebank響應的基礎知識。它還描述了通過配置文件管理測試數據的基本方法。 第4章探討了謂詞——mountebank對不同類型請求的不同響應方式。還介紹mountebank關于匹配XML和JSON的功能。 第5章介紹mountebank的記錄和重放功能。mountebank使用真實系統的代理來捕獲真實的測試數據。 第6章展示如何通過使用一個稱為注入的特性在JavaScript中編寫你自己的謂詞和響應來對mountebank本身編程。我們將研究注入如何幫助解決CORS和OAuth握手中的一些棘手問題,包括虛擬化GitHub的公共API。 第7章通過研究應用于響應的行為,對mountebank引擎的核心功能進行了詳細介紹。行為允許用戶添加延遲,從外部源查找數據以及執行大量其他轉換步驟。 第8章展示第3~7章中的所有概念如何延伸到HTTPS。mountebank的引擎是協議不可知的,我們給出了基于TCP的示例,包括擴展的.NET Remoting場景。 ● 第Ⅲ部分后退一步,將服務虛擬化放在更廣泛的上下文中。 第9章探討微服務的一個示例測試管道,從單元測試到手動探索測試,并展示了服務虛擬化的適用和不適用之處。 第10章說明服務虛擬化如何幫助性能測試。它包括一個虛擬化公共可用API的完整例子。 關于代碼 《Mountebank微服務測試》使用了一些代碼示例來幫助說明這些概念。其中一些是假設的(見第4章),一些是基于虛擬化的真實公共API(見第6章和第10章),還有一些是非常籠統的(見第8章)。我盡力讓這些例子在服務虛擬化可以解決的各種問題中通俗易懂,這不是件容易的事。有些問題很容易理解,但有些,比如虛擬化返回二進制數據的.NET Remoting服務,則不好理解。我希望保持足夠的幽默感,讓你對容易出現的問題保持興趣,對于復雜的行為,給你足夠的感覺,讓你有能力自己創新。 《Mountebank微服務測試》的源代碼可在上下載,也可掃封底二維碼獲取。 圖書論壇 購買《Mountebank微服務測試》包括免費訪問Manning 出版社運行的私人Web論壇,你可以在該論壇上對《Mountebank微服務測試》發表評論、提出技術問題以及獲得作者和其他用戶的幫助。要訪問論壇,請訪問。還可以在了解有關Manning論壇和行為準則的更多信息。 Manning對讀者的承諾是提供使讀者之間以及讀者和作者之間進行有意義的對話的場所。作者對論壇的貢獻仍然是自愿的,但這不代表作者承諾任何具體的參與數量。我們建議你問作者一些有挑戰性的問題,來引起他的興趣。 |