內容介紹
內容介紹
基本信息
| 書名: | Selenium自動化測試指南 |
| 作者: | 趙卓 | 開本: | |
| 定價: | 42 | 頁數: | |
| 現價: | 見1;CY=CY部 | 齣版時間 | 2013-09-01 |
| 書號: | 9787115315342 | 印刷時間: | |
| 齣版社: | 人民郵電齣版社 | 版次: | |
| 商品類型: | 正版圖書 | 印次: | |
內容提要 作者簡介 趙卓,軟件開發齣身,項目開發經驗豐富,同時兼修各種自動化測試技術。D4 屆中國成都GJ軟件設計大賽“佳設計奬”得主。譯作有《Visual Studio 2010 軟件測試指南》和《快速編碼: 高效使用Microsoft Visual Studio》。現J職於新蛋中國,負責推動整個部門的自動化測試。 精彩導讀 目錄 目 錄
DI1章 Selenium自動化測試基礎 1
1.1 自動化測試基礎 2
1.1.1 軟件測試概述 2
1.1.2 自動化測試簡介 4
1.1.3 Selenium簡介 5
1.2 HTML/XML/XPath基礎 7
1.2.1 HTML簡介 7
1.2.2 XML簡介 9
1.2.3 使用XPath進行元素定位 10
D2章 BB輔助工具 17
2.1 FireBug 18
2.2 FirePath 22
D3章 Selenium IDE 25
3.1 Selenium IDE的安裝 26
3.2 錄製測試用例 27
3.3 編寫測試用例 30
3.4 Command 33
3.4.1 Action 34
3.4.2 Accessor 46
3.4.3 Assertion 59
3.5 Target 71
3.5.1 identifier定位 71
3.5.2 id定位 72
3.5.3 name定位 73
3.5.4 XPath定位 74
3.5.5 鏈接文字定位 75
3.5.6 DOM定位 76
3.5.7 CSS定位 77
3.5.8 隱式定位 78
3.6 Value 78
3.6.1 帶變量的字符串 78
3.6.2 帶的字符串 79
3.7 日誌與引用 79
3.8 將命令復製或導齣為代碼 80
3.8.1 將命令復製為代碼 80
3.8.2 將命令導齣為代碼 82
D4章 Selenium 1(Remote Control) 84
4.1 Selenium 1的工作原理 85
4.1.1 Selenium 1的組件 85
4.1.2 Selenium服務器 86
4.1.3 Selenium客戶端庫文件 86
4.2 安裝並使用Selenium 86
4.2.1 在C# IDE中使用Selenium 87
4.2.2 在Java IDE中使用Selenium 92
4.3 下載並啓動Selenium服務器 99
4.4 選擇瀏覽器開始測試 100
4.5 瀏覽器導航操作 102
4.5.1 Open(url) 102
4.5.2 GoBack(url) 103
4.5.3 Refresh(), WindowFocus(), WindowMaximize()和Close() 104
4.6 操作頁麵元素 105
4.6.1 Type(locator, value) 105
4.6.2 TypeKeys(locator, value) 106
4.6.3 Click(locator) 107
4.6.4 ClickAt(locator, coordString) 107
4.6.5 doubleClick(locator) 108
4.6.6 doubleClickAt(locator, coordString) 108
4.6.7 Select(selectLocator, optionLocator) 108
4.6.8 check(locator)/unCheck(locator) 110
4.6.9 focus(locator) 110
4.7 鍵盤鼠標模擬操作 110
4.8 獲取頁麵元素的內容 112
4.8.1 getTitle() 112
4.8.2 getLocation() 114
4.8.3 getValue(locator) 114
4.8.4 IsEditable(locator) 115
4.8.5 getText(locator) 116
4.8.6 isChecked(locator) 118
4.8.7 getSelectedIndex(selectLocator) 119
4.8.8 getSelectedLabel(selectLocator) 121
4.8.9 getSelectedValue(selectLocator) 122
4.8.10 getSelectOptions(selectLocator) 123
4.8.11 getTable(tableCell Address) 124
4.8.12 getAttribute(attributeLocator) 126
4.8.13 isTextPresent(pattern) 127
4.8.14 isElementPresent(locator) 128
4.8.15 isVisible(locator) 130
4.8.16 getXpathCount(locator) 131
4.9 設置等待 132
4.9.1 WaitForPageToLoad(timeout) 132
4.9.2 setTimeOut(timeout) 133
4.9.3 setSpeed(value) 133
4.10 測試控製和調試類操作 134
4.10.1 captureEntirePage Screenshot(filename, kwargs) 134
4.10.2 captureEntirePage Screenshot(filename) 135
4.10.3 highlight(locator) 136
4.11 彈齣對話框的處理 136
4.11.1 IsAlertPresent() 138
4.11.2 GetAlert() 139
4.11.3 IsConfirmationPresent() 140
4.11.4 GetConfirmation() 141
4.11.5 ChooseOkOnNext Confirmation()和Choose CancelOnNext Confirmation() 142
4.11.6 IsPromptPresent() 142
4.11.7 GetPrompt() 143
4.11.8 AnswerOnNextPrompt(answer) 144
4.12 瀏覽器多窗口處理 144
4.12.1 GetAllWindowIds()、GetAllWindowNames()和GetAllWindow Titles() 145
4.12.2 WaitForPopUp(windowID, timeout) 148
4.12.3 SelectPopUp(windowID)和SelectWindow(windowID) 149
4.12.4 OpenWindow(url, windowID) 150
4.13 結束測試 151
4.13.1 Close()和Stop() 151
4.13.2 shutDownSelenium Server() 152
D5章 Selenium 2(WebDriver) 153
5.1 Selenium 2基於對象的測試 154
5.2 安裝並引用Selenium 2 155
5.2.1 在C# IDE中使用Selenium 156
5.2.2 在Java IDE中使用Selenium 160
5.3 選擇瀏覽器開始測試 166
5.4 瀏覽器導航對象Navigation 169
5.4.1 GoToUrl()/to() 169
5.4.2 Back()/Forward() 170
5.4.3 Refresh() 172
5.5 查找條件對象By 173
5.5.1 Id(idToFind) 173
5.5.2 Name(nameToFind) 175
5.5.3 LinkText(linkText ToFind) 175
5.5.4 PartialLinkText(partial LinkTextToFind) 176
5.5.5 ClassName(className ToFind) 177
5.5.6 TagName(TagName ToFind) 178
5.5.7 XPath(xPathToFind) 179
5.6 操作頁麵元素WebElement 179
5.6.1 Click() 180
5.6.2 SendKeys(text) 183
5.6.3 Clear() 184
5.6.4 Submit() 185
5.7 獲取頁麵及頁麵元素的內容 187
5.7.1 Title/getTitle() 187
5.7.2 Url/getCurrentUrl() 188
5.7.3 Text/getText() 189
5.7.4 Selected/isSelected() 190
5.7.5 TagName/getTagName() 191
5.7.6 Enabled/isEnabled() 192
5.7.7 Displayed/isDisplayed() 193
5.7.8 GetAttribute(attribute Name) 194
5.8 彈齣對話框的處理 195
5.8.1 Accept() 197
5.8.2 Dismiss() 198
5.8.3 SendKeys(keysToSend) 200
5.8.4 Text/getText() 201
5.9 瀏覽器多窗口處理 202
5.9.1 WindowHandles/get WindowHandles() 203
5.9.2 Window(windowName) 204
5.10 設置管理 205
5.10.1 Cookies/getCookies() 206
5.10.2 Window/window() 210
5.10.3 Timeouts() 212
5.11 為測試操作添加事件 213
5.11.1 在C#中使用Event FiringWebDriver 214
5.11.2 在Java中使用Event FiringWebDriver 219
5.12 結束測試 225
D6章 自動化測試的流程和框架 229
6.1 自動化測試的流程 230
6.2 自動化測試框架 232
D7章 自動化測試的實施 236
7.1 設計自動化測試用例 237
7.1.1 登錄功能的用例設計 237
7.1.2 搜索商品功能的用例設計 238
7.1.3 購買商品功能的用例設計 242
7.2 編寫自動化測試代碼 245
7.2.1 登錄功能的測試代碼 245
7.2.2 搜索商品功能的測試代碼 252
7.2.3 購買商品功能的測試代碼 262
7.3 設計自動化測試數據 268
7.3.1 登錄功能的數據 268
7.3.2 搜索商品功能的數據 269
7.3.3 購買商品功能的數據 271
D8章 Selenium測試進階 272
8.1 Opera/iPhone/Android測試 273
8.1.1 Opera測試 273
8.1.2 iPhone測試 276
8.1.3 Android測試 279
8.2 Selenium 1與Selenium 2的切換 282
8.2.1 從Selenium 1切換到Selenium 2 282
8.2.2 從Selenium 2切換到Selenium 1 287
8.3 對Selenium進行擴展 287
8.3.1 對Selenium IDE應用擴展 290
8.3.2 對Selenium 1應用擴展 290
8.3.3 對Selenium 2應用擴展 292
D9章 使用Selenium常見的問題 294
9.1 使用Selenium IDE常見的問題 295
9.2 使用Selenium 1常見的問題 296
9.3 使用Selenium 2常見的問題 301
暫時沒有目錄,請見諒!
暫時沒有目錄,請見諒!
《Web自動化測試實戰:從入門到精通》 一、 為什麼我們需要Web自動化測試? 在當今快速迭代的軟件開發環境中,保證Web應用程序的質量和穩定性變得尤為重要。傳統的Web應用程序測試,主要依靠人工進行,這種方式雖然直觀,但在麵對日益增長的測試需求、頻繁的代碼更新以及復雜的業務流程時,卻顯得力不從心。 效率瓶頸: 手工測試耗時耗力,難以覆蓋所有場景,尤其是在迴歸測試階段,重復性的勞動會嚴重拖慢開發進度。 人力成本: 隨著項目規模的擴大,需要投入大量測試人員,人力成本居高不下。 主觀誤差: 人工測試容易受到測試人員個人狀態、疲勞程度等因素的影響,導緻測試結果的不穩定性,齣現漏測或誤判。 可重復性差: 相同的測試場景,不同時間執行,由於環境、數據等細微差異,可能産生不同的結果,難以保證測試結果的一緻性。 早期缺陷發現難: 很多低級錯誤,如果不能在早期被發現,一旦進入生産環境,修復成本將呈指數級增長。 Web自動化測試應運而生,它利用腳本和工具來模擬用戶的操作,自動執行預先編寫好的測試用例,從而實現對Web應用程序功能的驗證。它不僅能夠顯著提高測試效率,降低人力成本,還能確保測試結果的客觀性和可重復性,幫助團隊更早地發現和修復缺陷,最終提升産品質量,加速産品迭代。 二、《Web自動化測試實戰:從入門到精通》將帶您走進Web自動化測試的世界 本書並非一本枯燥的理論書籍,而是緻力於為讀者提供一套完整、實用的Web自動化測試解決方案。從最基礎的概念引入,到高級的應用技巧,我們力求讓每一位讀者都能在掌握核心技術的同時,理解自動化測試在實際項目中的價值和應用。 第一部分:夯實基礎,認識Web自動化測試的基石 1. Web自動化測試概述: 什麼是Web自動化測試?它與手動測試有何區彆? 自動化測試的優勢和劣勢,什麼情況下適閤引入自動化測試? 自動化測試的生命周期,從測試用例設計到報告分析。 常見的Web自動化測試框架和工具介紹(不限於某一種工具,而是介紹其生態和定位)。 2. Web技術基礎迴顧: HTML、CSS、JavaScript:理解Web頁麵的結構、樣式和交互是編寫自動化腳本的前提。我們將簡要迴顧這些核心Web技術,確保讀者具備必要的知識背景。 HTTP/HTTPS協議:瞭解客戶端與服務器之間的通信方式,對於理解Web請求和響應至關重要。 瀏覽器工作原理:掌握瀏覽器如何解析HTML、渲染頁麵、執行JavaScript,有助於我們更好地控製瀏覽器行為。 3. 選擇閤適的自動化測試工具: 市麵上主流的Web自動化測試工具對比分析(如:Puppeteer, Playwright, Cypress, Watir等)。 如何根據項目需求、技術棧、團隊技能等因素,選擇最適閤的工具? 本部分將側重於提供選擇工具的思路和維度,而非限定於某一個工具。 第二部分:掌握核心技能,編寫高效的自動化測試腳本 1. 定位元素:找到Web頁麵上的“目標”: XPath:強大的路徑錶達式語言,用於在XML或HTML文檔中定位節點。我們將深入講解XPath的選擇器語法、常用函數以及提高定位效率的技巧。 CSS選擇器:簡潔高效的CSS語法,用於選擇HTML元素。掌握CSS選擇器的使用,能讓腳本更具可讀性和維護性。 ID、Name、Class等HTML屬性定位:最直接、最常用的定位方式,講解其優缺點和適用場景。 Link Text和Partial Link Text:根據鏈接文本定位超鏈接。 高級定位策略: 如何處理動態生成的元素、iframe內的元素、SVG元素等復雜場景。 最佳實踐: 如何編寫穩定、可維護的元素定位錶達式,避免因頁麵結構微小變動導緻腳本失效。 2. 交互操作:模擬用戶行為: 輸入文本(sendKeys):在輸入框中鍵入內容。 點擊(click):模擬鼠標點擊操作,觸發頁麵事件。 鼠標懸停(moveToElement):模擬鼠標移到某個元素上方,觸發下拉菜單等。 下拉框操作(selectByVisibleText, selectByIndex, selectByValue):選擇下拉菜單中的選項。 鍵盤操作(sendKeys with Key):模擬按下鍵盤上的特殊按鍵,如Enter, Tab, Ctrl+A等。 處理彈窗(Alerts): 如何在自動化腳本中處理JavaScript彈窗(確認、取消、輸入)。 執行JavaScript: 在特定場景下,直接執行JavaScript代碼,以達到更靈活的控製。 3. 斷言與驗證:確保測試的有效性: 什麼是斷言?斷言在自動化測試中的作用。 常用的斷言類型:相等斷言、包含斷言、可見性斷言、元素存在性斷言等。 如何編寫有效的斷言,以驗證頁麵的預期狀態和數據。 異常處理: 如何在斷言失敗時,提供有用的錯誤信息,方便排查問題。 4. 編寫第一個自動化測試腳本(示例): 我們將以一個通用的、易於理解的Web應用為例,一步步演示如何編寫一個完整的測試腳本,包括啓動瀏覽器、打開頁麵、定位元素、執行操作、進行斷言,最後關閉瀏覽器。 第三部分:構建健壯的自動化測試框架 1. Page Object Model (POM) 設計模式: 為什麼需要POM?它如何提高測試用例的可讀性和可維護性。 POM的原理和實現方式:將頁麵元素和操作封裝到獨立的類中。 通過實際案例,演示如何將已有的腳本重構為POM模式。 2. 測試數據管理: 如何將測試數據與測試腳本分離? 常用的測試數據源:CSV文件、Excel文件、JSON文件、數據庫等。 如何讀取和處理不同格式的測試數據,並將其應用於自動化測試。 3. 日誌記錄與報告生成: 為什麼需要日誌?如何記錄詳細的測試過程信息。 生成可讀性強的測試報告:HTML報告、Allure報告等。 報告中應包含的信息:測試結果、執行時間、截圖、錯誤信息等。 4. 環境管理與配置: 如何配置不同的測試環境(開發、測試、生産)。 使用配置文件來管理URL、賬號密碼等敏感信息。 第四部分:高級主題與實戰應用 1. 處理動態Web頁麵: 等待策略:如何處理頁麵加載、AJAX請求、異步操作等導緻元素尚未齣現或可見的問題。 顯式等待、隱式等待、固定等待的原理和使用場景。 2. 跨瀏覽器測試: 為什麼需要跨瀏覽器測試? 如何實現跨瀏覽器測試(如使用WebDriverManager,或者容器化解決方案)。 3. 並行執行測試: 提升測試效率的關鍵:如何同時運行多個測試用例。 並行執行的幾種方式和注意事項。 4. 與CI/CD集成: 自動化測試在持續集成/持續部署流程中的作用。 如何將自動化測試集成到Jenkins, GitLab CI, GitHub Actions等CI/CD平颱。 自動化測試在CI/CD中的配置和觸發。 5. 性能測試基礎: 在自動化測試中融入基礎的性能指標監控。 6. 實踐項目案例分析: 選取一個實際的、具有代錶性的Web應用,從需求分析、測試用例設計、框架搭建到最終的自動化實現,進行完整演示。 分析在真實項目中可能遇到的各種挑戰,以及如何運用所學知識解決。 第五部分:自動化測試的未來趨勢與職業發展 1. 新興的自動化測試技術和工具: AI在自動化測試中的應用(如智能元素定位、故障分析)。 無代碼/低代碼自動化測試工具的興起。 2. 測試左移和右移: 如何在開發早期就引入自動化測試,以及如何在生産環境中進行持續監控。 3. 成為一名優秀的自動化測試工程師: 需要具備哪些技能和素質? 職業發展路徑和建議。 本書的特色: 內容全麵且深入: 從基礎概念到高級技巧,覆蓋Web自動化測試的各個方麵。 注重實踐: 大量代碼示例、實戰案例,幫助讀者將理論知識轉化為實際技能。 循序漸進: 按照學習麯綫設計內容,讓初學者也能輕鬆入門。 不局限於單一工具: 旨在培養讀者解決問題的思維能力,而非死記硬背某個工具的使用方法。 貼近真實項目: 涵蓋實際項目中可能遇到的各種挑戰和解決方案。 無論您是初次接觸Web自動化測試的測試新人,還是希望提升技能的資深測試工程師,亦或是希望提升團隊效率的開發人員,《Web自動化測試實戰:從入門到精通》都將是您不可多得的學習夥伴。通過本書的學習,您將能夠自信地構建、維護和執行Web自動化測試,為您的項目質量保駕護航。