零成本實現Web自動化測試

零成本實現Web自動化測試

零成本實現Web自動化測試》是2011年5月出版的,作者是溫素劍。本書從目前主流的Web自動化測試工具入手,由淺入深、全面、細緻地闡述了如何使用開源測試工具來完成Web自動化測試,便於讀者輕鬆掌握Web自動化測試的原理、方法和實際操作。

基本介紹

  • 書名:零成本實現Web自動化測試
  • 作者:溫素劍 編著
  • ISBN:978-7-121-13205-6
  • 頁數:392頁
  • 定價:59.00元
  • 出版時間:2011年5月
  • 開本:16
編輯推薦,宣傳語,內 容 簡 介,前 言,本書內容,目錄,

編輯推薦

本書是一本Web自動化測試的專業工具書,也是軟體測試工程師的良師益友,可作為軟體測試培訓、高等院校軟體相關專業的輔助教材,目標讀者是初級或者資深軟體測試工程師、對提高自動化測試的有效性感到困惑的測試經理,以及有志於從事軟體測試工作的應屆畢業生。

宣傳語

Web自動化測試的專業工具書,軟體測試工程師的良師益友。

內 容 簡 介

它不是一本深奧的測試理論書籍,而是一本測試實戰類的書籍,作者試圖在書中向讀者演示如何使用Selenium、WebDriver、Bromine、SauceLabs、MantisBT搭建起一整套穩定、高效、成本為零的自動化測試平台。本書以測試Google GMAIL為具體範例,提供了完整的Web自動化測試解決方案。

前 言

我有一個夢想,有一天我的辦公桌上不再是一片狼藉,整潔的檯面上只有一個大大的紅色按鈕,每天最重要的工作,就是上班後狠狠地按下紅色按鈕,然後悠閒地泡上一杯西湖龍井,拿起最新一期的參考訊息,看看美聯儲是不是又在加印該死的“廢紙”。在我享受生活的同時,一份份準確嚴謹的測試報告就會自動發往開發部門,並抄送到各位領導的信箱中。測試報告包含最新軟體版本的缺陷列表,並指出了可接受的缺陷修復時間。剩下的一切都是“傲慢自大”的軟體開發人員的事,多么美妙的一天。
不過夢想永遠都是夢想,就像馬丁·路德·金遇刺身亡42年後的今天,美國仍然不是一個人人平等、沒有種族歧視的國家一樣。如果我的夢想有一天變為現實,那么我需要面對的可能不是悠閒的生活,而是一份解聘通知書。因為真到那一天,軟體測試工作就變成人人都能完成的簡單事情,公司完全可以隨便請一個人來負責我的工作,而不必付出很高的薪水。這真是一個一點兒也不好笑的笑話,測試人員的終極目標居然是讓自己失去飯碗,不過,幸好這一天還遠著呢。
現在,讓我們從夢想世界回到現實中來,現實是殘酷的,筆者所在的測試部門,已經擁有成千上萬個QTP自動化測試案例,不過它們僅僅是自動化測試案例而已。夢想離筆者還遠著呢,這些案例總是執行失敗,失敗原因千奇百怪,既有測試環境不穩定導致的失敗,也有QTP工具莫名其妙的錯誤。測試工程師投入了大量的精力去維護這些自動化測試案例,可惜效果並不好,自動化測試的有效率依然很低,很多軟體系統的自動化測試有效率常年保持在60%左右,怎么辦?如何向領導解釋?
要提高自動化測試的有效性,筆者認為有兩種辦法:
第一,降低自動化測試對象的層次,即採用底層接口自動化測試。一個軟體系統的上層界面可能會經常發生變化,但是底層功能模組之間接口和系統之間接口的變化卻一定不會很多,除非遇到軟體重構。這樣做就能在很大程度上避免了用戶界面頻繁變化對自動化測試的影響,從而降低了維護的工作量。
第二,採取更可靠的基於GUI的自動化測試工具。目前QTP無疑是使用最廣泛的自動化測試工具,但是實踐中筆者發現它的錄製/回放功能很不穩定,經常會發生測試對象無法識別的異常情況,甚至莫名其妙地運行失敗。怎么辦?放棄基於用戶界面的自動化測試?顯然不行,因為底層接口的自動化測試,有其自身的局限性,首先你無法通過它來測試用戶界面,其次你很難用它來測試軟體系統的完整業務流程。唯一可行的辦法就是尋找一種更可靠、更有效的工具來代替它,在這裡筆者推薦Selenium和WebDriver兩種開源的自動化測試工具。從目前的實踐來看,它們遠比QTP更穩定,測試案例的執行速度也更快,使用成本會更低。
寫作背景
最近幾年自動化測試已日益深入人心,如果現在有人去面試軟體測試工程師崗位,而又完全不了解自動化測試,那么他幾乎就不可能得到職位。因此,對測試工程師而言,了解自動化測試原理、掌握幾種主流的自動化測試軟體,已經變成自動化測試崗位最基本的要求。對有志於從事軟體測試行業的大學應屆畢業生而言,了解自動化測試就是一塊不錯的敲門磚。今年筆者所在的測試部門來了兩位實習生,由筆者輔導他們完成一些自動化測試任務。實習結束後他們並沒有與公司簽約,後來與他們溝通才知道,別的公司肯出雙倍的薪水聘用他們,看重的正是他們有自動化測試的工作經驗。由此,讀者朋友們就不難看出業界對自動化測試的重視程度。
“雲計算”絕對是2010年最熱的IT辭彙,甚至沾上一點“雲”概念的股票都會一飛沖天。“雲”聽起來很虛幻,其實就是瘦客戶端加格線計算。今後客戶端不再會有大量的計算任務,計算和存儲都被放在雲上。在筆者看來,今後的客戶端應該就是一個瀏覽器,用戶所有的操作都是通過瀏覽器來實現的。Google剛發布的作業系統Chrome OS,就是基於這一理念設計的。B/S和C/S架構的軟體系統,應該會慢慢演變為Browser/Cloud模式。如此看來在“雲計算”時代,Web自動化測試依然很重要,而且會越來越重要。因此,筆者萌生了寫作一本關於Web自動化測試的書籍。

本書內容

本書不是一本講述深奧測試理論的教科書,而是一本實戰性的書籍。筆者想要達到的目標是——讀者朋友們在認真讀完這本書後,馬上就能在生產實踐中用上所學的內容。本書首先介紹基礎的自動化測試理論,接著介紹Selenium和WebDriver兩種測試工具,最重要的是自動化測試實戰篇。實戰篇中筆者以測試Google Gmail為例,手把手地教讀者如何用Selenium、WebDriver、Bromine、SauceLabs、MantisBT搭建起一整套穩定、高效、成本為零的自動化測試平台。
本書分為三篇共14章。第1篇包括第1~9章,第1章介紹自動化測試理論,第2章到第8章介紹Selenium自動化測試工具,第9章介紹WebDriver自動化測試工具。第2篇是自動化測試實戰篇,包括第10~13章,第10章以測試Google GMAIL為範例介紹完整的Web自動化測試解決方案,第11章介紹管理測試案例的工具——Bromine,第12章介紹測試雲SauceLabs,第13章介紹基於Web的缺陷管理系統——MantisBT。第3篇是Selenium使用幫助篇,是使用Selenium經常需要用到的一些資料。
目標讀者
本書的目標讀者是初級或者資深軟體測試工程師,以及對提高自動化測試的有效性感到困惑的測試經理。本書著重介紹如何使用Selenium和WebDriver兩種開源自動化測試工具,來構建你的Web自動化測試體系。
感謝
首先要感謝我的家人,正是由於他們默默的支持,我才能靜下心來寫作。其次,還要感謝電子工業出版社計算機分社社長郭立和策劃編輯袁金敏的熱情支持和幫助,以及其他編輯認真細緻的工作才能使書稿得以完善和出版。
由於筆者水平有限,書中的錯誤和不要之處在所難免,敬請讀者批評指正。溫素劍
2010年12月16日於北京

目錄

第1篇 Selenium和WebDriver工具篇
第1章 自動化測試基礎 2
1.1 初識自動化測試 2
1.1.1 自動化測試是什麼 2
1.1.2 常見的自動化測試架構 5
1.1.3 自動化測試的基本流程 8
1.1.4 走出自動化測試認知的誤區 12
1.2 開源Web自動化測試 14
1.2.1 Web自動化測試 14
1.2.2 是否選擇開源自動化測試 15
1.2.3 開源自動化測試的優勢 15
第2章 Selenium簡介和基礎 17
2.1 Selenium簡介 17
2.2 Selenium基礎 21
2.3 小結 25
第3章 Selenium-IDE 26
3.1 簡介 26
3.2 IDE操作界面 29
3.3 測試案例和測試案例集 32
3.3.1 創建測試案例 32
3.3.2 運行測試案例 35
3.3.3 調試測試案例 37
3.3.4 測試案例集 39
3.4 IDE功能擴展 40
3.5 常見錯誤處理 41
第4章 Selenium命令 45
4.1 驗證頁面元素 45
4.2 定位頁面元素 48
4.3 文字範本匹配 54
4.4 命令使用技巧 58
第5章 Selenium-RC 63
5.1 簡介 63
5.2 Selenium-RC基礎 64
5.2.1 Selenium-RC工作原理 64
5.2.2 Selenium-RC架構 66
5.2.3 Selenium-RC安裝 70
5.3 Selenium-RC使用 74
5.3.1 從Selenese到測試程式 74
5.3.2 構建你的測試程式 79
5.3.3 學習Selenium-RC API 86
5.3.4 報告測試結果 88
5.3.5 為測試加入一些編程邏輯 91
5.3.6 Server選項 94
5.3.7 處理HTTPS和安全彈出對話框 99
5.3.8 支持其他瀏覽器和瀏覽器配置 100
5.4 常見錯誤的處理 101
第6章 Selenium測試案例設計 107
6.1 測試設計導言 107
6.2 測試什麼 107
6.3 驗證結果 109
6.3.1 斷言vs驗證 109
6.3.2 權衡:assertTextPresent、assertElementPresent、assertText 110
6.4 選擇一個定位策略 111
6.4.1 定位動態對象 111
6.4.2 如何避免在測試中使用複雜的xpath表達式 114
6.5 測試Ajax套用系統 115
6.6 UI映射 115
6.7 數據驅動測試 118
6.8 資料庫驗證 119
第7章 Selenium用戶擴展 121
7.1 簡介 121
7.2 Actions 121
7.3 Accessors/Assertions 122
7.4 定位策略 123
7.5 在Selenium-IDE中使用用戶擴展 124
7.6 在Selenium-RC中使用用戶擴展 124
第8章 Selenium-Grid 126
8.1 Selenium-Grid是如何工作的 127
8.1.1 傳統的Selenium架構 127
8.1.2 Selenium-Grid架構 128
8.1.3 指定測試執行環境 130
8.2 如何使用Selenium-Grid測試平台 136
第9章 Selenium 2.0和WebDriver 142
9.1 WebDriver基礎 142
9.1.1 WebDriver是什麼 142
9.1.2 什麼時候使用WebDriver 143
9.1.3 五分鐘入門指南 143
9.2 WebDriver的各種實現 146
9.2.1 HtmlUnit Driver 146
9.2.2 Firefox Driver 147
9.2.3 Internet Explorer Driver 149
9.2.4 Chrome Driver 149
9.3 WebDriver進階 151
9.4 模擬Selenium-RC 156
第2篇 自動化測試實戰篇
第10章 實戰——測試Google GMAIL 160
10.1 明確測試範圍 160
10.2 Selenium測試——登錄GMAIL信箱 161
10.3 Selenium測試——撰寫郵件 172
10.4 Selenium測試——刪除郵件以及郵件列表 178
10.5 Selenium測試——郵件存檔 185
10.6 Selenium測試——搜尋郵件 191
10.7 使用測試案例集來管理Selenium-IDE腳本 197
10.8 留給讀者的思考 200
第11章 管理你的測試案例——Bromine 201
11.1 Bromine基礎 201
11.1.1 為什麼使用Bromine 201
11.1.2 Bromine特性 202
11.1.3 Bromine工作原理 202
11.1.4 安裝Bromine 204
11.2 配置和使用Bromine 206
11.2.1 配置Bromine測試節點 206
11.2.2 配置Bromine任務調度器 209
11.2.3 創建一個Bromine測試腳本 212
11.2.4 在Bromine中上載測試腳本 216
11.2.5 測試計畫 216
11.2.6 測試實驗室 219
11.2.7 控制臺 220
11.3 實戰——管理Google GMAIL測試案例 222
第12章 測試雲——SauceLabs 229
12.1 Sauce OnDemand 229
12.1.1 如何使用Sauce OnDemand 231
12.1.2 Sauce OnDemand常用參數 238
12.2 Sauce Connect 246
12.3 Sauce IDE 248
12.4 Sauce RC 253
12.5 實戰——在SaucesLabs 中運行Google GMAIL測試案例 258
12.6 實戰——在Bromine中集成SaucesLabs 267
第13章 管理你的缺陷——MantisBT 271
13.1 簡介 271
13.2 安裝 273
13.3 MantisBT配置 276
13.4 MantisBT管理 280
13.4.1 用戶管理 280
13.4.2 項目管理 283
13.4.3 自定義欄位管理 285
13.4.4 管理配置 286
13.5 報告缺陷 289
13.5.1 報告並處理缺陷 290
13.5.2 缺陷查詢 291
13.5.3 缺陷修改 292
13.5.4 我的視圖 294
13.6 統計報表和圖形報表 294
13.7 留給讀者的思考 297
第3篇 Selenium使用幫助篇
第14章 Selenium使用幫助 300
14.1 Selenium API速查手冊 300
14.1.1 Selenium Action 300
14.1.2 Selenium Assertion 318
14.1.3 Selenium Accessors 320
14.2 Selenium客戶端驅動配置 353
14.2.1 .NET客戶端驅動配置 353
14.2.2 Java客戶端驅動配置 356
14.2.3 Python客戶端驅動配置 372

熱門詞條

聯絡我們