标题：Selenium测试实践：基于电子商务平台
图书信息
关春银 王林 周晖 吴付华 编著  ISBN 978-7-121-13137-0
2011年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