軟件自動化測試入門攻略( 簡體 字) | |
作者:楊定佳 | 類別:1. -> 程式設計 -> 綜合 |
出版社:清華大學出版社 | ![]() 詢問書籍請說出此書號! 有庫存 NT售價: 645 元 |
出版日:1/1/2024 | |
頁數:526 | |
光碟數:0 | |
站長推薦: ![]() ![]() ![]() ![]() ![]() | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302651048 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章自動化測試概述 1
1.1什么是軟件自動化測試 1 1.1.1定義 1 1.1.2應用條件 1 1.1.3對比手工測試 2 1.1.4分類 3 1.1.5價值 4 1.2自動化測試的概念 6 1.2.1流程 6 1.2.2原則 7 1.2.3測試模型 8 1.2.4度量模型 10 1.3自動化測試常用工具 12 1.3.1單元測試工具 12 1.3.2代碼包測試工具 13 1.3.3接口測試工具 13 1.3.4WebUI測試工具 14 1.3.5App測試工具 15 1.3.6性能測試工具 16 1.4如何入門自動化測試 17 1.4.1入門是基礎 17 1.4.2入行是起點 18 1.4.3入職是挑戰 18 1.5思考題 18 第2章unittest 19 2.1簡介 19 2.2測試用例 20 2.3測試腳手架 21 2.4測試套件 23 2.4.1TestSuite類構建 23 2.4.2TestLoader類構建 25 2.4.3其他方法構建 26 2.5測試運行器 27 2.6命令行接口 28 2.7用例執行順序 30 2.8測試斷言 31 2.9skip裝飾器 33 2.10模擬對象mock 36 2.11ddt實現參數化 38 2.12多線程運行 42 2.13定時運行 44 2.14生成測試報告 46 2.15發送測試結果通知 48 2.16思考題 54 第3章pytest 55 3.1簡介 55 3.2第一個示例 55 3.3測試用例 57 3.4命令行參數 59 3.5跳過 61 3.6標記 62 3.6.1內置標記 63 3.6.2自定義標記 64 3.7夾具 66 3.7.1fixture參數 66 3.7.2夾具的使用 67 3.7.3夾具作用域 68 3.7.4共享夾具 70 3.8參數化 72 3.8.1標記方式實現 72 3.8.2夾具方式實現 73 3.9配置文件 74 3.10插件 76 3.11分布式執行 77 3.12Allure測試報告 79 3.12.1Allure安裝 79 3.12.2生成測試報告 80 3.12.3Allure特性與應用示例 82 3.13思考題 87 第4章Requests 88 4.1簡介 88 4.2主要方法 89 4.2.1請求示例 89 4.2.2查詢參數 90 4.2.3響應對象 91 4.3發送GET請求 92 4.3.1params參數 92 4.3.2自定義請求頭 93 4.4發送POST請求 94 4.4.1data參數 95 4.4.2json參數 96 4.5發送其他類型的請求 97 4.5.1發送HEAD請求 98 4.5.2發送PUT請求 98 4.5.3發送PATCH請求 98 4.5.4發送DELETE請求 99 4.6文件上傳 99 4.7文件下載 100 4.8Cookies參數 101 4.9Session對象 103 4.10重定向 104 4.11添加代理 105 4.12超時設置 106 4.13異常處理 106 4.14證書驗證 107 4.15身份認證 107 4.16生成測試用例腳本 108 4.17思考題 110 第5章Postman 111 5.1安裝 111 5.2界面介紹 113 5.3HTTP請求 115 5.3.1請求界面介紹 116 5.3.2GET請求 117 5.3.3POST請求 118 5.3.4其他類型請求 121 5.3.5文件上傳 122 5.3.6文件下載 123 5.3.7授權 124 5.3.8前置腳本 126 5.3.9后置腳本 128 5.3.10請求設置 131 5.3.11其他 132 5.4環境和變量 132 5.5Cookies管理 135 5.6代理設置 136 5.7證書管理 138 5.8集合管理 140 5.8.1執行集合 141 5.8.2參數化 142 5.8.3分支和循環 144 5.9模擬服務器 145 5.10監視器 148 5.11命令行執行集合 152 5.12思考題 157 第6章Selenium 158 6.1簡介 158 6.1.1版本演進 158 6.1.2特點 159 6.1.3WebDriver的工作原理 159 6.2環境準備 160 6.2.1安裝Selenium 160 6.2.2安裝瀏覽器驅動 161 6.2.3第一個示例 162 6.3瀏覽器操作 163 6.4頁面元素定位 169 6.4.1頁面查找元素 170 6.4.2id定位 171 6.4.3name定位 171 6.4.4class定位 172 6.4.5tag定位 172 6.4.6link定位 173 6.4.7partiallink定位 173 6.4.8css定位 173 6.4.9xpath定位 174 6.4.10相對定位 178 6.4.11定位一組元素 179 6.5獲取頁面內容 180 6.6獲取元素屬性 181 6.7頁面元素操作 183 6.7.1單擊 183 6.7.2輸入文本 184 6.7.3清除文本 184 6.7.4提交表單 185 6.7.5單選框操作 186 6.7.6復選框操作 187 6.7.7下拉框操作 187 6.7.8Frame結構操作 189 6.8文件操作 191 6.8.1文件上傳 191 6.8.2文件下載 192 6.9模擬鼠標操作 194 6.10模擬鍵盤操作 197 6.11延時等待 198 6.12瀏覽器配置 201 6.13其他操作 203 6.13.1調用JavaScript 203 6.13.2Cookie操作 204 6.13.3屏幕截圖 205 6.13.4獲取環境信息 205 6.13.5執行CDP命令 206 6.13.6設置超時時間 207 6.14WebdriverManager 207 6.15SeleniumGrid 208 6.16生成測試用例腳本 212 6.17思考題 218 第7章Appium 219 7.1簡介 219 7.2Android模擬器 220 7.3ADB工具 221 7.3.1ADB的工作原理 221 7.3.2ADB工具安裝 222 7.3.3ADB常用命令 224 7.3.4自動化測試中常用的ADB命令 225 7.4Appium環境準備 228 7.4.1安裝AppiumDesktop 228 7.4.2安裝AppiumInspector 229 7.4.3Appium簡單使用 230 7.4.4Inspector功能 233 7.4.5腳本錄制 233 7.4.6查看元素屬性 236 7.5AppiumServer 236 7.6AppiumClient 238 7.7UIAutomatorViewer 240 7.8元素定位 241 7.9元素操作 243 7.10獲取元素屬性 244 7.11觸控事件 246 7.11.1TouchAction 246 7.11.2輸入源行為 248 7.11.3單點觸控 249 7.11.4多點觸控 250 7.11.5其他觸控操作 252 7.12設備交互API 254 7.13AndroidToast識別 258 7.14其他操作 259 7.15不同應用的測試 262 7.15.1App應用程序的分類 262 7.15.2案例一: 原生應用的測試 263 7.15.3案例二: Web應用測試 271 7.15.4案例三: 混合應用測試 275 7.15.5案例四: 微信小程序測試 277 7.16穩定性測試 279 7.16.1Monkey簡介 279 7.16.2Monkey常用參數 280 7.16.3Monkey日志分析 282 7.17思考題 285 第8章JMeter 286 8.1簡介 286 8.2安裝 287 8.3配置文件 288 8.4界面介紹 291 8.5腳本錄制 293 8.6基本組件 297 8.7測試計劃 298 8.8線程組 301 8.8.1普通線程組 302 8.8.2開放模型線程組 304 8.9取樣器 305 8.9.1HTTP請求 306 8.9.2調試取樣器 311 8.9.3BeanShell取樣器 312 8.9.4FTP請求 314 8.9.5JDBC請求 316 8.9.6SMTP取樣器 316 8.10配置元件 320 8.10.1CSV數據文件設置 321 8.10.2HTTP信息頭管理器 323 8.10.3HTTPCookie管理器 324 8.10.4HTTP請求默認值 326 8.10.5JDBC連接配置器 327 8.10.6隨機變量 330 8.11前置處理器 332 8.11.1用戶參數 333 8.11.2取樣器超時 334 8.12后置處理器 334 8.12.1CSS/Query提取器 335 8.12.2JSON提取器 337 8.12.3正則表達式提取器 338 8.12.4XPath提取器 339 8.13斷言 341 8.13.1響應斷言 342 8.13.2JSON斷言 343 8.13.3XPath斷言 345 8.14定時器 346 8.14.1固定定時器 347 8.14.2統一隨機定時器 347 8.14.3同步定時器 347 8.14.4高斯隨機定時器 348 8.15監聽器 348 8.15.1查看結果樹 349 8.15.2聚合報告 350 8.15.3響應時間圖 351 8.15.4斷言結果 351 8.16邏輯控制器 352 8.16.1IF控制器 353 8.16.2循環控制器 354 8.16.3ForEach控制器 355 8.16.4僅一次控制器 356 8.17作用域和執行順序 357 8.18插件 357 8.19函數 360 8.20分布式部署 362 8.21可視化監控平臺的搭建與使用 364 8.21.1安裝和部署InfluxDB1.7 365 8.21.2安裝和部署Grafana 365 8.21.3Grafana中添加 JMeter模板 366 8.21.4創建和運行JMeter腳本 367 8.22思考題 368 第9章實現單元測試 370 9.1被測產品介紹 370 9.1.1項目介紹 370 9.1.2產品搭建 371 9.2單元測試簡介 374 9.2.1概念 374 9.2.2分類 375 9.2.3對測試人員的要求 375 9.3用例設計方法 376 9.3.1路徑覆蓋 377 9.3.2語句覆蓋 377 9.3.3條件覆蓋 378 9.3.4判定覆蓋 379 9.3.5判定和條件覆蓋 380 9.3.6條件組合覆蓋 381 9.4實戰對象 381 9.5設計測試用例 383 9.6編寫測試腳本 384 9.7統計代碼覆蓋率 385 9.8思考題 387 第10章實現代碼包測試 389 10.1什么是代碼包 389 10.2用例設計方法 389 10.3實踐對象 390 10.4設計測試用例 392 10.5編寫測試腳本 393 10.6測試運行 397 10.7思考題 398 第11章實現接口測試 399 11.1接口測試簡介 399 11.1.1概念 399 11.1.2常見接口協議 400 11.2用例設計方法 401 11.3實戰對象 403 11.4構建項目結構 404 11.5設計測試用例 406 11.6編寫項目腳本 407 11.6.1設計測試用例文件 407 11.6.2添加基礎配置數據 413 11.6.3讀取配置文件內容 414 11.6.4獲取測試用例數據 415 11.6.5封裝接口請求函數 418 11.6.6設置共享夾具 419 11.6.7封裝斷言函數 419 11.6.8添加測試用例函數 422 11.7執行測試項目 425 11.8思考題 427 第12章實現WebUI測試 428 12.1WebUI測試簡介 428 12.2用例設計方法 429 12.3PageObject模型 430 12.4實戰對象 432 12.5設計測試用例 433 12.6項目結構搭建 434 12.7編寫測試腳本 436 12.7.1封裝元素定位 436 12.7.2添加測試數據 438 12.7.3頁面功能函數封裝 439 12.7.4實現測試用例 446 12.8執行測試項目 452 12.9思考題 453 第13章實現移動端測試 454 13.1App測試簡介 454 13.2項目實戰對象 455 13.3項目結構搭建 456 13.4編寫測試腳本 457 13.4.1封裝元素定位 457 13.4.2添加測試數據 458 13.4.3頁面功能函數封裝 459 13.4.4實現測試用例 465 13.5執行測試項目 466 13.6思考題 467 第14章實現性能測試 468 14.1性能測試簡介 468 14.1.1測試流程 469 14.1.2常見性能指標 469 14.1.3流量回放技術 470 14.2性能需求分析 471 14.3制訂測試計劃 472 14.4確定測試方案 475 14.5搭建測試環境 478 14.6準備測試數據 479 14.7開發壓測腳本 479 14.7.1添加請求 479 14.7.2運行調試 485 14.7.3設置斷言 487 14.7.4增加壓力 490 14.8測試執行及監控 492 14.9結果分析 493 14.10性能調優 497 14.11編寫測試報告 498 14.12思考題 498 第15章容器化部署與自動化測試 499 15.1什么是容器化部署 499 15.2Docker安裝 500 15.3Docker核心概念 502 15.4Docker使用 503 15.4.1倉庫操作 503 15.4.2鏡像操作 504 15.4.3容器操作 506 15.5Dockerfile 510 15.6Docker部署Jenkins 513 15.6.1Jenkins安裝 513 15.6.2Jenkins在自動化測試中的應用 515 15.7持續集成與自動化測試 522 15.7.1什么是持續集成 523 15.7.2持續集成常用工具 523 15.7.3部署測試項目 524 15.8思考題 524 參考文獻 525 《軟件自動化測試入門攻略》以軟件自動化測試工具在項目實踐中的應用為主線,依照“需求分析→用例設計→腳本開發→測試執行→結果分析”的自動化測試流程,詳細介紹軟件自動化測試的方法論、必備知識與核心技能。全書共15章,第1章至第8章主要介紹當前企業使用率**的unittest、pytest、Requests、Postman、Selenium、Appium和JMeter 7款自動化測試工具,第9章至第14章分別以Leadshop開源商城系統中的部分模塊為實戰對象,運用前述章節的工具依次實現單元測試、代碼包測試、接口測試、Web UI測試、移動端測試和性能測試演練,完成基礎工具的單個知識點學習到項目的綜合運用,第15章介紹Docker容器技術及其在Jenkins中實現測試項目的任務部署,完成分布式節點掛載和定時執行。
《軟件自動化測試入門攻略》來自一線資深測試工程師多年從業經驗的總結,內容詳實,貼近實際工作需要,既可幫助對自動化測試感興趣的新手快速入門和入行,又可對有一定測試基礎的讀者實現自我能力的提升和突破。 自動化測試是軟件測試重要的組成部分,于項目而言是一種提高軟件測試效率和準確性的方法,能提高生產力和效率,于測試人員而言是一種能力的展示,更是一種價值的肯定。本書以軟件自動化測試工具在項目實踐中的應用為主線,依照“需求分析→用例設計→腳本開發→測試執行→結果分析”的自動化測試流程,詳細介紹了軟件自動化測試的方法論、必備知識與核心技能。
筆者工作在一線測試崗位7年有余,在測試領域積累了豐富的實踐經驗,因此,本書所涉及的技術在當今測試領域都在廣泛應用,盡可能使用通俗易懂的語言進行描述,確保讀者看得懂、學得會、用到上。如果你是測試崗位的新人或想轉行進入測試行業,本書可幫助你快速入門、入行;如果你是具有一定基礎的測試人員,書中講述的項目實戰,可幫助你實現自我能力的提高和突破,甚至可以幫助你帶領團隊完成自動化測試項目。 核心內容 本書的每一章節都融進了筆者的經驗和思考,并得到許多經驗豐富的測試同行的支持和良好建議,全書共15章,說明如下: 第1章作為本書引子,介紹自動化測試的重要概念、常用工具和如何入門自動化測試,點出自動化測試的本質是將以人為驅動的測試行為轉化為機器執行的一種過程。 第2章~第8章,依次介紹當前企業使用率最高的unittest、pytest、Requests、Postman、Selenium、Appium和JMeter 7款自動化測試工具,其中unittest和pytest是Python語言的單元測試框架,大部分以Python語言為基礎的自動化測試項目都會使用unittest或pytest組織測試用例;Requests和Postman是兩個接口測試工具,Requests是Python語言的一個庫,使用Python編程語言實現接口測試項目幾乎都是借助Requests完成的。Postman是一個獨立接口測試工具,測試人員在不需要編寫代碼的情況下便可輕松完成項目接口測試用例的編寫,實現自動化測試;Selenium和Appium均是Python語言實現UI自動化測試的第三方庫,Selenium完成的是Web UI自動化測試,Appium完成的是移動端程序的UI自動化測試;JMeter是一款開源的接口測試工具,也可用來完成產品的性能測試。 上述各章都以概念+示例的方式編寫,讀者在學習時需要先理解其概念,對知識點有一個正確認識,再跟隨示例實踐,發現基礎薄弱的地方,加強測試和調試的能力,做到概念清晰,手到拈來。 掌握自動化測試工具是入門自動化測試的必備技能,有助于提高對自動化測試的認知,同時,從工具開始學習,邊學邊練,也有成就感,是一個不錯的入門路徑。 第9章~第14章,分別以開源項目“Leadshop開源商城系統”中的部分模塊為例,運用前述章節的測試工具依次實現單元測試、代碼包測試、接口測試、Web UI測試、移動端測試和性能測試演練,完成測試工具的單個知識點學習到項目的綜合應用。每一章實戰均以“需求分析→用例設計→腳本開發→測試執行→結果分析”的自動化測試流程為順序展開,需求分析階段會澄清測試對象、測試范圍以及最終結果等內容;用例設計階段會先介紹用例設計方法,再結合被測對象設計出最少的用例覆蓋最全的使用場景;腳本開發階段是結合被測對象和測試類型,設計出結構清晰的自動化測試框架,開發出復用性強的基礎代碼,并在此基礎上實現自動化測試用例;測試執行階段是編寫執行腳本實現自動化測試用例的執行;結果分析階段有兩個目標:一是對測試結果分析,成功和失敗用例的總結;二是對自動化測試項目的思考,當下的實現邏輯是否有弊端,對測試結果有何影響。當明確了測試項目的每一個階段后,你已經可以參與企業項目的測試工作了。 這一部分內容是在Leadshop開源商城系統環境下,將基礎知識綜合運用的一個過程,不但涉及很多基礎知識,而且需要考慮全局的應用搭配。另外,通過項目實踐,讀者要注意不斷總結思考、發現規律,逐步形成一套自己的測試體系,為未來帶領測試團隊體積累經驗。 第15章介紹了容器化部署與自動化測試,容器化部署是一種流行的技術,引入自動化測試中極大地簡化了各種測試項目的部署,提高了工作效率。本章以Docker技術為基礎部署持續集成工具Jenkins,在Jenkins工具中實現測試項目的任務部署,完成分布式節點掛載和定時執行。 配書資源 本書所有腳本均以Python語言實現,讀者可掃描下述二維碼免費下載。 本書各章還提供了思考題,各題的答案請掃描下述二維碼下載。 如果下載有問題,請聯系,郵件主題為“軟件自動化測試入門攻略”。 讀者對象 本書適合對自動測試感興趣的各層次讀者,比如,初入職場的測試新人、轉型測試崗位的非計算機專業的職場人士和學生等,也適合作為自動化測試培訓機構或大中專院校計算機專業測試課程的教學用書,本書提供的真實測試項目實踐,也可以幫助有一定測試基礎的測試人員作為實施自動化測試項目的指南。 致 謝 本書能夠得以成功出版離不開開源項目“Leadshop開源商城系統”和筆者身邊親朋好友的大力支持,在此對他們表示衷心的感謝。 感謝Leadshop開源項目的開發者,使本書的實踐篇章有了真實的實戰對象。 感謝楊瑞、李先麗、范申、馬敬賓、楊亞理、林靜芬、張露、冶心怡、抄帥、李亞萍、胡列、陸怡頤、周燕、丁揚健等為本書做了大量審稿工作,你們的真知灼見,使本書更臻完善。 感謝清華大學出版社的各位編輯,尤其是王金柱老師兩年來的鼎力支持,讓這本書能夠高質量地與廣大讀者見面。 感謝每一位測試人,書中借鑒了他們很多的經驗與智慧,他們對軟件測試行業的熱愛、持續耕耘和深度實踐,使筆者受益良多。 因能力所限,書中難免存在疏漏,如果讀者存在求職困惑或對本書的改進有更好的建議,請發送郵件聯系筆者共同探討。 最后,希望本書能成為各位讀者自動化測試之路上的向導和伴侶。 楊定佳 2023年11月12日 |