【有庫存】NT售價: 645 元
自動化測試是軟件測試重要的組成部分,于項目而言是一種提高軟件測試效率和準確性的方法,能提高生產力和效率,于測試人員而言是一種能力的展示,更是一種價值的肯定。本書以軟件自動化測試工具在項目實踐中的應用為主線,依照“需求分析→用例設計→腳本開發→測試執行→結果分析”的自動化測試流程,詳細介紹了軟件自動化測試的方法論、必備知識與核心技能。筆者工作在一線測試崗位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日
《軟件自動化測試入門攻略》以軟件自動化測試工具在項目實踐中的應用為主線,依照“需求分析→用例設計→腳本開發→測試執行→結果分析”的自動化測試流程,詳細介紹軟件自動化測試的方法論、必備知識與核心技能。全書共15章,第1章至第8章主要介紹當前企業使用率**的unittest、pytest、Requests、Postman、Selenium、Appium和JMeter 7款自動化測試工具,第9章至第14章分別以Leadshop開源商城系統中的部分模塊為實戰對象,運用前述章節的工具依次實現單元測試、代碼包測試、接口測試、Web UI測試、移動端測試和性能測試演練,完成基礎工具的單個知識點學習到項目的綜合運用,第15章介紹Docker容器技術及其在Jenkins中實現測試項目的任務部署,完成分布式節點掛載和定時執行。《軟件自動化測試入門攻略》來自一線資深測試工程師多年從業經驗的總結,內容詳實,貼近實際工作需要,既可幫助對自動化測試感興趣的新手快速入門和入行,又可對有一定測試基礎的讀者實現自我能力的提升和突破。
第1章自動化測試概述 11.1什么是軟件自動化測試 11.1.1定義 11.1.2應用條件 11.1.3對比手工測試 21.1.4分類 31.1.5價值 41.2自動化測試的概念 61.2.1流程 61.2.2原則 71.2.3測試模型 81.2.4度量模型 101.3自動化測試常用工具 121.3.1單元測試工具 121.3.2代碼包測試工具 131.3.3接口測試工具 131.3.4WebUI測試工具 141.3.5App測試工具 151.3.6性能測試工具 161.4如何入門自動化測試 171.4.1入門是基礎 171.4.2入行是起點 181.4.3入職是挑戰 181.5思考題 18第2章unittest 192.1簡介 192.2測試用例 202.3測試腳手架 212.4測試套件 232.4.1TestSuite類構建 232.4.2TestLoader類構建 252.4.3其他方法構建 262.5測試運行器 272.6命令行接口 282.7用例執行順序 302.8測試斷言 312.9skip裝飾器 332.10模擬對象mock 362.11ddt實現參數化 382.12多線程運行 422.13定時運行 442.14生成測試報告 462.15發送測試結果通知 482.16思考題 54第3章pytest 553.1簡介 553.2第一個示例 553.3測試用例 573.4命令行參數 593.5跳過 613.6標記 623.6.1內置標記 633.6.2自定義標記 643.7夾具 663.7.1fixture參數 663.7.2夾具的使用 673.7.3夾具作用域 683.7.4共享夾具 703.8參數化 723.8.1標記方式實現 723.8.2夾具方式實現 733.9配置文件 743.10插件 763.11分布式執行 773.12Allure測試報告 793.12.1Allure安裝 793.12.2生成測試報告 803.12.3Allure特性與應用示例 823.13思考題 87第4章Requests 884.1簡介 884.2主要方法 894.2.1請求示例 894.2.2查詢參數 904.2.3響應對象 914.3發送GET請求 924.3.1params參數 924.3.2自定義請求頭 934.4發送POST請求 944.4.1data參數 954.4.2json參數 964.5發送其他類型的請求 974.5.1發送HEAD請求 984.5.2發送PUT請求 984.5.3發送PATCH請求 984.5.4發送DELETE請求 994.6文件上傳 994.7文件下載 1004.8Cookies參數 1014.9Session對象 1034.10重定向 1044.11添加代理 1054.12超時設置 1064.13異常處理 1064.14證書驗證 1074.15身份認證 1074.16生成測試用例腳本 1084.17思考題 110第5章Postman 1115.1安裝 1115.2界面介紹 1135.3HTTP請求 1155.3.1請求界面介紹 1165.3.2GET請求 1175.3.3POST請求 1185.3.4其他類型請求 1215.3.5文件上傳 1225.3.6文件下載 1235.3.7授權 1245.3.8前置腳本 1265.3.9后置腳本 1285.3.10請求設置 1315.3.11其他 1325.4環境和變量 1325.5Cookies管理 1355.6代理設置 1365.7證書管理 1385.8集合管理 1405.8.1執行集合 1415.8.2參數化 1425.8.3分支和循環 1445.9模擬服務器 1455.10監視器 1485.11命令行執行集合 1525.12思考題 157第6章Selenium 1586.1簡介 1586.1.1版本演進 1586.1.2特點 1596.1.3WebDriver的工作原理 1596.2環境準備 1606.2.1安裝Selenium 1606.2.2安裝瀏覽器驅動 1616.2.3第一個示例 1626.3瀏覽器操作 1636.4頁面元素定位 1696.4.1頁面查找元素 1706.4.2id定位 1716.4.3name定位 1716.4.4class定位 1726.4.5tag定位 1726.4.6link定位 1736.4.7partiallink定位 1736.4.8css定位 1736.4.9xpath定位 1746.4.10相對定位 1786.4.11定位一組元素 1796.5獲取頁面內容 1806.6獲取元素屬性 1816.7頁面元素操作 1836.7.1單擊 1836.7.2輸入文本 1846.7.3清除文本 1846.7.4提交表單 1856.7.5單選框操作 1866.7.6復選框操作 1876.7.7下拉框操作 1876.7.8Frame結構操作 1896.8文件操作 1916.8.1文件上傳 1916.8.2文件下載 1926.9模擬鼠標操作 1946.10模擬鍵盤操作 1976.11延時等待 1986.12瀏覽器配置 2016.13其他操作 2036.13.1調用JavaScript 2036.13.2Cookie操作 2046.13.3屏幕截圖 2056.13.4獲取環境信息 2056.13.5執行CDP命令 2066.13.6設置超時時間 2076.14WebdriverManager 2076.15SeleniumGrid 2086.16生成測試用例腳本 2126.17思考題 218第7章Appium 2197.1簡介 2197.2Android模擬器 2207.3ADB工具 2217.3.1ADB的工作原理 2217.3.2ADB工具安裝 2227.3.3ADB常用命令 2247.3.4自動化測試中常用的ADB命令 2257.4Appium環境準備 2287.4.1安裝AppiumDesktop 2287.4.2安裝AppiumInspector 2297.4.3Appium簡單使用 2307.4.4Inspector功能 2337.4.5腳本錄制 2337.4.6查看元素屬性 2367.5AppiumServer 2367.6AppiumClient 2387.7UIAutomatorViewer 2407.8元素定位 2417.9元素操作 2437.10獲取元素屬性 2447.11觸控事件 2467.11.1TouchAction 2467.11.2輸入源行為 2487.11.3單點觸控 2497.11.4多點觸控 2507.11.5其他觸控操作 2527.12設備交互API 2547.13AndroidToast識別 2587.14其他操作 2597.15不同應用的測試 2627.15.1App應用程序的分類 2627.15.2案例一:原生應用的測試 2637.15.3案例二:Web應用測試 2717.15.4案例三:混合應用測試 2757.15.5案例四:微信小程序測試 2777.16穩定性測試 2797.16.1Monkey簡介 2797.16.2Monkey常用參數 2807.16.3Monkey日志分析 2827.17思考題 285第8章JMeter 2868.1簡介 2868.2安裝 2878.3配置文件 2888.4界面介紹 2918.5腳本錄制 2938.6基本組件 2978.7測試計劃 2988.8線程組 3018.8.1普通線程組 3028.8.2開放模型線程組 3048.9取樣器 3058.9.1HTTP請求 3068.9.2調試取樣器 3118.9.3BeanShell取樣器 3128.9.4FTP請求 3148.9.5JDBC請求 3168.9.6SMTP取樣器 3168.10配置元件 3208.10.1CSV數據文件設置 3218.10.2HTTP信息頭管理器 3238.10.3HTTPCookie管理器 3248.10.4HTTP請求默認值 3268.10.5JDBC連接配置器 3278.10.6隨機變量 3308.11前置處理器 3328.11.1用戶參數 3338.11.2取樣器超時 3348.12后置處理器 3348.12.1CSS/Query提取器 3358.12.2JSON提取器 3378.12.3正則表達式提取器 3388.12.4XPath提取器 3398.13斷言 3418.13.1響應斷言 3428.13.2JSON斷言 3438.13.3XPath斷言 3458.14定時器 3468.14.1固定定時器 3478.14.2統一隨機定時器 3478.14.3同步定時器 3478.14.4高斯隨機定時器 3488.15監聽器 3488.15.1查看結果樹 3498.15.2聚合報告 3508.15.3響應時間圖 3518.15.4斷言結果 3518.16邏輯控制器 3528.16.1IF控制器 3538.16.2循環控制器 3548.16.3ForEach控制器 3558.16.4僅一次控制器 3568.17作用域和執行順序 3578.18插件 3578.19函數 3608.20分布式部署 3628.21可視化監控平臺的搭建與使用 3648.21.1安裝和部署InfluxDB1.7 3658.21.2安裝和部署Grafana 3658.21.3Grafana中添加JMeter模板 3668.21.4創建和運行JMeter腳本 3678.22思考題 368第9章實現單元測試 3709.1被測產品介紹 3709.1.1項目介紹 3709.1.2產品搭建 3719.2單元測試簡介 3749.2.1概念 3749.2.2分類 3759.2.3對測試人員的要求 3759.3用例設計方法 3769.3.1路徑覆蓋 3779.3.2語句覆蓋 3779.3.3條件覆蓋 3789.3.4判定覆蓋 3799.3.5判定和條件覆蓋 3809.3.6條件組合覆蓋 3819.4實戰對象 3819.5設計測試用例 3839.6編寫測試腳本 3849.7統計代碼覆蓋率 3859.8思考題 387第10章實現代碼包測試 38910.1什么是代碼包 38910.2用例設計方法 38910.3實踐對象 39010.4設計測試用例 39210.5編寫測試腳本 39310.6測試運行 39710.7思考題 398第11章實現接口測試 39911.1接口測試簡介 39911.1.1概念 39911.1.2常見接口協議 40011.2用例設計方法 40111.3實戰對象 40311.4構建項目結構 40411.5設計測試用例 40611.6編寫項目腳本 40711.6.1設計測試用例文件 40711.6.2添加基礎配置數據 41311.6.3讀取配置文件內容 41411.6.4獲取測試用例數據 41511.6.5封裝接口請求函數 41811.6.6設置共享夾具 41911.6.7封裝斷言函數 41911.6.8添加測試用例函數 42211.7執行測試項目 42511.8思考題 427第12章實現WebUI測試 42812.1WebUI測試簡介 42812.2用例設計方法 42912.3PageObject模型 43012.4實戰對象 43212.5設計測試用例 43312.6項目結構搭建 43412.7編寫測試腳本 43612.7.1封裝元素定位 43612.7.2添加測試數據 43812.7.3頁面功能函數封裝 43912.7.4實現測試用例 44612.8執行測試項目 45212.9思考題 453第13章實現移動端測試 45413.1App測試簡介 45413.2項目實戰對象 45513.3項目結構搭建 45613.4編寫測試腳本 45713.4.1封裝元素定位 45713.4.2添加測試數據 45813.4.3頁面功能函數封裝 45913.4.4實現測試用例 46513.5執行測試項目 46613.6思考題 467第14章實現性能測試 46814.1性能測試簡介 46814.1.1測試流程 46914.1.2常見性能指標 46914.1.3流量回放技術 47014.2性能需求分析 47114.3制訂測試計劃 47214.4確定測試方案 47514.5搭建測試環境 47814.6準備測試數據 47914.7開發壓測腳本 47914.7.1添加請求 47914.7.2運行調試 48514.7.3設置斷言 48714.7.4增加壓力 49014.8測試執行及監控 49214.9結果分析 49314.10性能調優 49714.11編寫測試報告 49814.12思考題 498第15章容器化部署與自動化測試 49915.1什么是容器化部署 49915.2Docker安裝 50015.3Docker核心概念 50215.4Docker使用 50315.4.1倉庫操作 50315.4.2鏡像操作 50415.4.3容器操作 50615.5Dockerfile 51015.6Docker部署Jenkins 51315.6.1Jenkins安裝 51315.6.2Jenkins在自動化測試中的應用 51515.7持續集成與自動化測試 52215.7.1什么是持續集成 52315.7.2持續集成常用工具 52315.7.3部署測試項目 52415.8思考題 524參考文獻 525