圖書信息
關春銀 王林 周暉 吳付華 編著
ISBN 978-7-121-13137-02011年5月出版
定價:35.00元
16開
228 頁
內 容 簡 介
自動化測試已經不是一個新名詞,隨著一些自動化測試工具的出現並且進入國內,自動化測試行業的發展很快。本書對開源自動化測試工具selenium進行了詳細介紹,幫助讀者熟練掌握Selenium的使用方法。
本書將電子商務平台下的Selenium測試技巧通過具有代表性的實例進行分析,深入淺出地把相關概念和知識點展現給讀者。本書主要內容包括軟體測試的基礎、Selenium自動化測試基礎知識、IDE安裝及介紹、Selenium腳本編寫環境的搭建、腳本元素定位實例學習、Selenium中Action命令實例學習、Selenium中Accessors命令實例學習、Selenium中Assertions 命令實例學習、Selenium項目實踐操作等內容。
本書可作為剛進入性能測試領域的測試工程師的入門參考書,對已經有一定性能測試經驗的讀者來說,也是一本整理思路、融會貫通的總結筆記。
前 言
自動化測試已經不是一個新名詞,隨著一些自動化測試工具被引入國內,自動化測試行業獲得了很好的發展,並成為測試行業中高端技術的代表。有經驗的測試人員希望能夠從事自動化測試工作,剛剛入門的測試工程師希望能夠直接接觸自動化測試工作。自動化測試已經成為測試人員夢寐以求的工作。
為什麼寫這本書
筆者看過很多自動化測試方面的書,也在測試論壇上看過對各種各樣的自動化測試工具的討論,但是針對Selenium這一開源自動化測試工具的介紹,可以說是少之又少。而事實上Selenium是一款非常好的Web自動化測試工具,隨著對這款工具的不斷使用,筆者對Selenium的了解也不斷深入,發現使用這個工具能提高公司軟體的質量,並且節省測試成本。
本書面向的讀者
本書並不是完全為有經驗的測試工程師而寫的,因為其中介紹了測試的主要基本知識,並且伴有實例介紹,對於初學者來說是一本非常好的測試書籍;而有經驗的測試工程師則可以跳過第1章,直接閱讀自動化測試的相關內容。無論你是初學者還是有經驗的測試工程師,都能輕鬆學會使用Selenium這個自動化測試工具。本書採用的實例都是讀者可以自己實現的實例,使用的都是讀者可以訪問的電子商務平台,通過這樣的實例練習,讀者可以更真實地學習Selenium,並且進一步深入了解此工具。
本書主要內容
第1章 主要介紹軟體測試的基本知識
第2章 主要介紹Selenium,以及自動化測試的基礎知識、測試的流程
第3章 主要介紹IDE的安裝及使用,通過本章的學習,將了解到如何使用IDE進行自動化測試
第4章 主要介紹Selenium腳本編寫環境的搭建,從這章開始,就進入用工具語言編寫腳本流程的學習,為後面腳本的深入學習打下基礎
第5章 通過具體實例介紹了Element Locators和Patterns,讀者可以自己根據書中的介紹學習
第6章 通過具體實例介紹Selenium中的Actions命令,讀者可以根據書中的介紹學習
第7章 通過具體實例介紹Selenium中的Accessors命令,讀者可以根據書中的介紹學習
第8章 通過具體實例介紹Selenium中的Assertions命令,讀者可以根據書中的介紹學習
第9章 通過具體的項目實例,講解Selenium如何針對項目進行自動化測試
致謝
感謝廣大讀者對《Selenium測試實踐—基於電子商務平台》這本書的支持。
在這裡要感謝很多人無私的幫助與支持,感謝四海商舟創始人周寧先生、四海商舟總裁兼COO毛從任先生,以及四海商舟研發中心總監王林先生,正是因為他們的大力支持,這本書才能順利面世。
同時要感謝四海商舟所有部門的付出,正是在他們提供的眾多電子商務平台的基礎上,在這些長期的日常測試過程中,我們不斷總結經驗,發現錯誤、彌補缺陷,提煉技巧,並最終有了這本書的精華集成。因此,也要感謝與筆者朝夕相伴的質量部的兄弟姐妹們,正是他們的辛勤工作,筆者得以有更多的空餘時間來總結提煉,完成這本書。
最後還要感謝電子工業出版社,感謝李冰女士對本書的出版工作給予的大力支持,以及付出的努力。
目 錄
第1章 軟體測試的基礎 1
1.1 概要 1
1.2 軟體生命周期的各個階段 2
1.3 軟體測試概述 5
1.4 軟體測試的目的 7
1.5 軟體測試的方法 8
1.5.1 等價類劃分法 8
1.5.2 邊界值分析法 9
1.5.3 錯誤猜測法 10
1.6 通過軟體測試找出缺陷 10
第2章 Selenium自動化測試基礎知識 13
2.1 什麼是自動化測試 13
2.2 自動化測試的流程 15
2.2.1 軟體測試工作的流程 16
2.2.2 自動化測試的流程 21
2.3 什麼是Selenium 23
2.4 為什麼選擇Selenium作為Web自動化測試工具 24
2.5 如何選擇合適的Selenium 25
第3章 IDE安裝及介紹 27
3.1 Firefox 的安裝 27
3.2 IDE的安裝 31
3.3 IDE基礎知識 33
3.3.1 概述 33
3.3.2 選單欄 35
3.3.3 Base URL 44
3.3.4 測試錄製回放工具條 45
3.3.5 測試用例面板 46
3.3.6 詳細信息欄 48
3.3.7 IDE錄製腳本、回放腳本 50
3.3.8 增加測試結果屬性驗證 53
3.3.9 IDE 命令插入 54
第4章 Selenium腳本編寫環境的搭建 56
4.1 腳本開發環境的搭建——JUnit 56
4.1.1 環境安裝 56
4.1.2 驗證環境搭建成功 61
4.2 FireBug環境的搭建及使用 63
4.2.1 Firebug的安裝 63
4.2.2 Firebug的使用 67
4.3 XPath環境的搭建及使用 67
4.3.1 XPath的安裝 67
4.3.2 XPath的使用 70
第5章 腳本元素定位實例學習 72
5.1 Element Locators(元素定位器) 72
5.2 StringMatching Patterns(字元串匹配模式) 78
5.3 Select Option Specifiers(Select選項指定器) 81
第6章 Selenium中Actions命令實例學習 83
6.1 open(url)命令 84
6.1.1 IDE環境下使用實例 84
6.1.2 JUnit環境下使用實例 85
6.2 click(locator) 87
6.2.1 IDE環境下使用實例 87
6.2.2 JUnit環境下使用實例 88
6.3 clickAt(locator,coordString) 90
6.4 type(locator,value) 90
6.4.1 IDE環境下使用實例 90
6.4.2 JUnit環境下使用實例 91
6.5 select(selectLocator, optionLocator) 92
6.5.1 IDE環境下使用實例 92
6.5.2 JUnit環境下使用實例 93
6.6 goback() 94
6.6.1 IDE環境下使用實例 94
6.6.2 JUnit環境下使用實例 95
6.7 assignId (locator,identifier) 96
6.7.1 IDE環境下使用實例 96
6.7.2 JUnit環境下使用實例 97
6.8 check(locator)/uncheck(locator) 98
6.8.1 IDE環境下使用實例 98
6.8.2 JUnit環境下使用實例 99
6.9 captureEntirePageScreenshot(filename,kwargs) 100
6.9.1 IDE環境下使用實例 100
6.9.2 JUnit環境下使用實例 101
6.10 pause (waitTime) 101
6.10.1 IDE環境下使用實例 101
6.10.2 JUnit環境下使用實例 102
6.11 typeKeys(locator, value) 103
6.11.1 IDE環境下使用實例 103
6.11.2 JUnit環境下使用實例 104
6.12 selectFrame (locator) 105
6.12.1 IDE環境下使用實例 105
6.12.2 JUnit環境下使用實例 107
6.13 runScript (script) 108
6.13.1 IDE環境下使用實例 108
6.13.2 JUnit環境下使用實例 109
6.14 fireEvent(locator,eventName) 110
6.14.1 IDE環境下使用實例 110
6.14.2 JUnit環境下使用實例 111
6.15 keyPress(locator,keySequence) 112
6.15.1 IDE環境下使用實例 112
6.15.2 JUnit環境下使用實例 113
6.16 focus (locator) 114
6.17 controlKeyDown()/controlKeyUp() 114
6.17.1 IDE環境下使用實例 114
6.17.2 JUnit環境下使用實例 115
6.18 metaKeyDown()/metaKeyUp() 116
6.19 shiftKeyDown()/shiftKeyUp() 116
6.20 altKeyDown()/altKeyUp() 116
6.21 windowMaximize() 116
6.22 setSpeed(value) 116
6.22.1 IDE環境下使用實例 117
6.22.2 JUnit環境下使用實例 118
6.23 setMouseSpeed (pixels) 118
6.24 highlight(locator) 119
6.24.1 IDE環境下使用實例 119
6.24.2 JUnit環境下使用實例 119
6.25 refresh() 120
6.25.1 IDE環境下使用實例 120
6.25.2 JUnit環境下使用實例 121
6.26 close() 122
6.26.1 IDE環境下使用實例 122
6.26.2 JUnit環境下使用實例 123
6.27 openWindow (url,windowID) 123
6.28 selectWindow(windowID) 123
6.29 windowFocus() 124
6.29.1 IDE環境下使用實例 124
6.29.2 JUnit環境下使用實例 125
6.30 chooseCancelOnNextConfirmation() 126
6.31 answerOnNextPrompt (answer) 126
6.32 DOUBLECLICK(locator) 126
6.32.1 IDE環境下使用實例 127
6.32.2 JUnit環境下使用實例 128
6.33 doubleClickAt(locator) 128
6.34 contextMenu (locator) 128
6.34.1 IDE環境下使用實例 129
6.34.2 JUnit環境下使用實例 130
6.35 settimeout (timeout) 130
6.36 waitForPageToLoad(timeout) 130
6.36.1 IDE環境下使用實例 131
6.36.2 JUnit環境下使用實例 132
6.37 waitForFrameToLoad(frameAddress,timeout) 132
6.38 waitForCondition(script,timeout) 132
6.39 store(expression,variableName) 133
6.40 Echo(message) 133
6.40.1 IDE環境下使用實例 134
6.40.2 JUnit環境下使用實例 135
6.41 submit(formLocator) 135
6.42 keyDown(locator,keySequence)/keyUP
(locator, keySequence) 135
6.43 mouseDown(locator)/ mouseUp(locator) 136
6.44 mouseMove(locator)/ mouseout(locator) 136
6.45 mouseover(locator) 136
6.46 removeAllSelections(locator) 137
第7章 Selenium中Accessors命令實例學習 138
7.1 storeValue(locator,variableName) 138
7.1.1 IDE環境下使用實例 139
7.1.2 JUnit環境下使用實例 140
7.2 storeText(locator,variableName) 140
7.2.1 IDE環境下使用實例 140
7.2.2 JUnit環境下使用實例 141
7.3 StoreTitle(variableName) 142
7.3.1 IDE環境下使用實例 142
7.3.2 JUnit環境下使用實例 143
7.4 storeLocation(variableName) 144
7.4.1 IDE環境下使用實例 144
7.4.2 JUnit環境下使用實例 145
7.5 storeElementPresent(locator,variableName) 146
7.5.1 IDE環境下使用實例 146
7.5.2 JUnit環境下使用實例 147
7.6 storeTextPresent(pattern,variableName) 148
7.6.1 IDE環境下使用實例 148
7.6.2 JUnit環境下使用實例 149
7.7 storeAttribute(attributeLocator,variableName) 149
7.7.1 IDE環境下使用實例 150
7.7.2 JUnit環境下使用實例 151
7.8 storeAllWindowIds(variableName) 151
7.9 storeAllWindowNames(variableName) 151
7.10 storeAllWindowTitles(variableName) 152
7.10.1 IDE環境下使用實例 152
7.10.2 JUnit環境下使用實例 153
7.11 storeSelectOptions(selectLocator,variableName) 154
7.11.1 IDE環境下使用實例 154
7.11.2 JUnit環境下使用實例 155
7.12 storeSomethingSelected(selectLocator,variableName) 156
7.12.1 IDE環境下使用實例 156
7.12.2 JUnit環境下使用實例 157
7.13 storeSelectedId(selectLocator,variableName)/
storeSelectedIds(selectLocator,variableName) 158
7.14 storeSelectedIndex(selectLocator,variable Name)/
storeSelectedIndexs(selectLocator,variableName) 158
7.15 storeSelectedValue(selectLocator,variableName)/
storeSelectedValues(selectLocator,variableName) 159
7.16 storeSelectedLabel(selectLocator,variableName)/
storeSelectedLabels(selectLocator,variableName) 159
7.16.1 IDE環境下使用實例 159
7.16.2 JUnit環境下使用實例 160
7.17 storeChecked(locator,variableName) 161
7.17.1 IDE環境下使用實例 162
7.17.2 JUnit環境下使用實例 163
7.18 storeTable(tableCellAddress,variableName) 163
7.18.1 IDE環境下使用實例 163
7.18.2 JUnit環境下使用實例 164
7.19 storeAlert(variableName) 165
7.19.1 IDE環境下使用實例 166
7.19.2 JUnit環境下使用實例 167
7.20 storeConfirmation(variableName) 167
7.21 storePrompt(variableName) 168
7.22 storeAllButtons(variableName) 168
7.23 storeAllFields(variableName) 169
7.24 storeAllLinks(variableName) 169
7.25 storeBodyText(variableName) 169
7.26 storeHtmlSource(variableName) 170
7.26.1 IDE環境下使用實例 170
7.26.2 JUnit環境下使用實例 170
7.27 storeCookie(variableName) 171
7.28 storeElementHeight(locator,variableName) 171
7.29 storeElementPositionLeft(locator,variableName) 172
7.30 storeMouseSpeed(variableName) 172
7.31 storeXpathCount(xpath,variableName) 173
7.32 storeEditable(locator,variableName) 173
7.33 storeVisible(locator,variableName) 173
第8章 Selenium中Assertions命令實例學習 175
8.1 assertValue(locator, pattern) 176
8.1.1 IDE環境下使用實例 176
8.1.2 JUnit環境下使用實例 177
8.2 assertText(locator, pattern) 178
8.2.1 IDE環境下使用實例 178
8.2.2 JUnit環境下使用實例 178
8.3 assertTitle(pattern) 179
8.3.1 IDE環境下使用實例 179
8.3.2 JUnit環境下使用實例 180
8.4 assertLocation(pattern) 181
8.4.1 IDE環境下使用實例 181
8.4.2 JUnit環境下使用實例 181
8.5 assertElementPresent(pattern) 182
8.5.1 IDE環境下使用實例 182
8.5.2 JUnit環境下使用實例 183
8.6 assertTextPresent(pattern) 184
8.6.1 IDE環境下使用實例 184
8.6.2 JUnit環境下使用實例 185
8.7 assertAttribute(attributelocator, pattern) 185
8.7.1 IDE環境下使用實例 185
8.7.2 JUnit環境下使用實例 186
8.8 assertSelectOptions(selectlocator,pattern) 187
8.8.1 IDE環境下使用實例 187
8.8.2 JUnit環境下使用實例 188
8.9 assertSomethingSelected(selectlocator) 189
8.9.1 IDE環境下使用實例 189
8.9.2 JUnit環境下使用實例 190
8.10 assertSelectedId(selectlocator,pattern)/
assertSelectedIds(selectlocator, pattern) 191
8.11 assertSelectedIndex(selectlocator,pattern)/
assertSelectedIndexs(selectlocator,pattern) 191
8.12 assertSelectedValue(selectlocator,pattern)/
assertSelectedValues(selectlocator,pattern) 191
8.13 assertSelectedLabel(selectlocator,pattern)/
assertSelectedLabels(selectlocator,pattern) 192
8.13.1 IDE環境下使用實例 192
8.13.2 JUnit環境下使用實例 193
8.14 assertChecked(locator) 194
8.14.1 IDE環境下使用實例 194
8.14.2 JUnit環境下使用實例 194
8.15 assertTable(tableCellAddress, pattern) 195
8.15.1 IDE環境下使用實例 195
8.15.2 JUnit環境下使用實例 196
8.16 assertAlert(pattern) 197
8.16.1 IDE環境下使用實例 197
8.16.2 JUnit環境下使用實例 198
8.17 assertConfirmation(pattern) 199
8.18 assertPrompt (pattern) 199
8.19 assertAllWindowIds(pattern) 200
8.20 assertAllWindowNames(pattern) 200
8.21 assertAllWindowTitles(pattern) 200
8.22 assertSelected(selectlocator,optionlocator) 201
8.23 assertEditable(locator) 201
8.24 assertVisible(locator) 201
8.25 assertElementHeight(locator, pattern) 202
8.26 assertElementPositionLeft(locator, pattern) 202
8.27 assertMouseSpeed(pattern) 202
第9章 Selenium項目實踐操作 203
9.1 項目簡介 203
9.2 註冊(Register)流程實例 203
9.2.1 流程查看 203
9.9.2 腳本內容 204
9.3 登錄(Login)流程實例 206
9.3.1 流程查看 206
9.3.2 腳本內容 207
9.4 查詢(Search)流程實例 208
9.4.1 流程查看 208
9.4.2 腳本內容 208
9.5 購物(Buy)流程實例 210
9.5.1 流程查看 210
9.5.2 腳本內容 210