描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302483175
本书既可让初学者从入门到精通,循序渐进; 也可帮中高级Tester夯实技能,从形象到抽象,提供测试思想中更多的可能性。
目录
篇基础篇
第1章Selenium简介
1.1Selenium的前世今生
1.2Selenium工具套件介绍
1.3Selenium支持的浏览器和平台
1.3.1Selenium IDE、Selenium 1和Selenium RC支持的浏览器和平台
1.3.2Selenium 2(WebDriver)支持的浏览器
1.4Selenium RC和 WebDriver的实现原理
1.4.1Selenium RC的实现原理
1.4.2WebDriver的实现原理
1.4.3Selenium 1.0和WebDriver的特点
1.5Selenium 3的新特性
第2章自动化测试那点事儿
2.1自动化测试目标
2.2管理层的支持
2.3投入产出比
2.4敏捷开发中的自动化测试应用
2.5自动化测试人员分工
2.6自动化测试工具的选择和推广使用
2.6.1自动化测试工具的选择
2.6.2Selenium WebDriver和QTP工具的特点比较
2.7在项目中实施自动化的实践
2.8学习Selenium工具的能力要求
第3章自动化测试辅助工具
3.1安装Firefox浏览器
3.2安装Firebug插件
3.3Firebug插件的使用
3.3.1启动Firebug插件
3.3.2Firebug插件的常用功能
3.4安装FirePath插件
3.5FirePath插件的使用
3.5.1FirePath插件中使用XPath定位方式
3.5.2FirePath插件中使用CSS定位方式
3.6IE浏览器自带的辅助开发工具
第4章Selenium IDE
4.1Selenium IDE的定义
4.2安装Selenium IDE
4.2.1从Selenium官网安装
4.2.2使用离线XPI安装文件安装
4.3Selenium IDE插件界面和功能介绍
4.3.1主界面
4.3.2常用工具栏
4.3.3脚本编辑区域
4.4常用菜单项
4.4.1“文件”菜单
4.4.2“编辑”菜单
4.4.3Actions菜单
4.4.4Option菜单
4.5录制和回放脚本实例
4.6Selenium IDE脚本介绍——Selenese
4.7Selenium IDE的基本命令使用实例
4.7.1waitForText、verifyText和assertText命令
4.7.2storeTitle命令和echo命令
4.7.3openWindow命令和selectWindow命令
4.8从Selenium IDE导出脚本
4.8.1导出脚本文件
4.8.2将Selenium IDE插件中的某行命令导出为Python脚本
第5章搭建Python环境和PyCharm集成开发环境
5.1安装Python并配置Python环境
5.1.1下载并安装Python解释器
5.1.2配置Python环境
5.1.3安装pip
5.2安装Python集成开发环境PyCharm
5.3新建一个Python工程
第6章Selenium3(WebDriver)的安装
6.1在Python中安装WebDriver
6.2个WebDriver脚本
6.3各浏览器驱动的使用方法
第7章单元测试框架的使用介绍
7.1单元测试的定义
7.2unittest单元测试框架
7.2.1unittest的定义
7.2.2unittest框架的4个重要概念
7.2.3单元测试加载方法
7.2.4测试用例
7.2.5测试集合
7.2.6按照特定顺序执行测试用例
7.2.7忽略某个测试方法
7.2.8命令行模式执行测试用例
7.2.9批量执行测试模块
7.2.10常用的断言方法
7.2.11使用HTMLTestRunner生成HTML测试报告
7.3在unittest中运行个WebDriver测试用例
第8章页面元素定位方法
8.1定位页面元素方法汇总
8.2使用ID定位
8.3使用name定位
8.4使用链接的全部文字定位
8.5使用部分链接文字定位
8.6使用HTML标签名定位
8.7使用Class名称定位
8.8使用XPath定位
8.8.1XPath的定义
8.8.2XPath节点
8.8.3XPath定位语法
8.8.4XPath运算符
8.9CSS定位
8.9.1CSS的概念
8.9.2CSS定位语法
8.9.3XPath定位与CSS定位的比较
8.10表格的定位
8.10.1遍历表格所有的单元格
8.10.2定位表格中的某个元素
8.10.3定位表格中的子元素
第二篇实战应用篇
第9章WebDriver的多浏览器测试
9.1使用IE浏览器进行测试
9.2使用Firefox浏览器进行测试
9.3使用Chrome浏览器进行测试
第10章WebDriver API详解
10.1访问某个网址
10.2网页的前进和后退
10.3刷新当前网页
10.4浏览器窗口化
10.5获取并设置当前窗口的位置
10.6获取并设置当前窗口的大小
10.7获取页面的Title属性值
10.8获取页面HTML源代码
10.9获取当前页面的URL地址
10.10获取与切换浏览器窗口句柄
10.11获取页面元素的基本信息
10.12获取页面元素的文本内容
10.13判断页面元素是否可见
10.14判断页面元素是否可操作
10.15获取页面元素的属性
10.16获取页面元素的CSS属性值
10.17清空输入框中的内容
10.18在输入框中输入指定内容
10.19单击按钮
10.20双击某个元素
10.21操作单选下拉列表
10.21.1遍历所有选项并打印选项显示的文本和选项值
10.21.2选择下拉列表元素的三种方法
10.22断言单选列表选项值
10.23操作多选的选择列表
10.24操作可以输入的下拉列表(输入的同时模拟按键)
10.25操作单选框
10.26操作复选框
10.27断言页面源码中的关键字
10.28对当前浏览器窗口截屏
10.29拖拽页面元素
10.30模拟键盘单个按键操作
10.31模拟组合按键操作
10.31.1通过WebDriver内建的模块模拟组合键
10.31.2通过第三方模块模拟组合按键
10.31.3通过设置剪贴板实现复制和粘贴
10.32模拟鼠标右键
10.33模拟鼠标左键按下与释放
10.34保持鼠标悬停在某个元素上
10.35判断页面元素是否存在
10.36隐式等待
10.37显式等待
10.38显式等待中期望的场景
10.39使用Title属性识别和操作新弹出的浏览器窗口
10.40通过页面的关键内容识别和操作新浏览器窗口
10.41操作Frame中的页面元素
10.42使用Frame中的HTML源码内容操作Frame
10.43操作IFrame中的页面元素
10.44操作JavaScript的Alert弹窗
10.45操作JavaScript的confirm弹窗
10.46操作JavaScript的prompt弹窗
10.47操作浏览器的Cookie
10.48指定页面加载时间
第11章WebDriver高级应用
11.1使用JavaScript操作页面元素
11.2操作Web页面的滚动条
11.3在Ajax方式产生的浮动框中,单击选择包含某个关键字的选项
11.4结束Windows中浏览器的进程
11.5更改一个页面对象的属性值
11.6无人工干预地自动下载某个文件
11.7无人工干预地自动上传附件
11.7.1使用WebDriver的send_keys方法上传文件
11.7.2模拟键盘操作,实现上传文件
11.7.3使用第三方工具AutoIt上传文件
11.8右键另存为下载文件
11.9操作日期控件
11.10启动带有用户配置信息的Firefox浏览器窗口
11.11UI对象库
11.12操作富文本框
11.13精确比较页面截图图片
11.14高亮显示正在操作的页面元素
11.15浏览器中新开标签页(Tab)
11.16测试过程中发生异常或断言失败时进行屏幕截图
11.17使用日志模块记录测试过程中的信息
11.18封装操作表格的公用类
11.19测试HTML5语言实现的视频播放器
11.20在HTML5的画布元素上进行绘画操作
11.21操作HTML5存储对象
11.22使用Chrome浏览器自动将文件下载到指定路径
11.23修改Chrome设置伪装成手机M站
11.24屏蔽Chrome的ignorecertificateerrors提示及禁用扩展插件并实现
窗口化
11.25禁用Chrome浏览器的PDF和Flash插件
11.26禁用IE的保护模式
11.27启动Firefox的同时打开Firebug
11.28禁用Chrome浏览器中的Image加载
11.29禁用Firefox浏览器中的CSS、Flash及Image加载
第三篇自动化测试框架搭建篇
第12章数据驱动测试
12.1数据驱动概述
12.2数据驱动单元测试的环境准备
12.3使用unittest和ddt进行数据驱动
12.4使用数据文件进行数据驱动
12.5使用Excel进行数据驱动测试
12.6使用XML进行数据驱动测试
12.7使用MySQL数据库进行数据驱动测试
第13章行为驱动测试
13.1行为驱动开发和lettuce简介
13.2行为驱动测试的环境准备
13.3个英文语言行为驱动测试
13.4通过类模式实现英文行为驱动
13.5lettuce框架的步骤数据表格
13.6使用WebDriver进行英文语言的行为数据驱动测试
13.7使用WebDriver进行中文语言的行为数据驱动测试
13.8批量执行行为驱动用例集
13.9解决中文描述的场景输出到控制台乱码
第14章Selenium Grid的使用
14.1Selenium Grid简介
14.2分布式自动化测试环境准备
14.3Selenium Grid的使用方法
14.3.1远程调用Firefox浏览器进行自动化测试
14.3.2远程调用IE浏览器进行自动化测试
14.3.3远程调用Chrome浏览器进行自动化测试
14.3.4同时支持多个浏览器进行自动化测试
14.4结合unittest完成分布式自动化测试
14.5实现并发的分布式自动化测试
第15章自动化测试框架的搭建及测试实战
15.1自动化测试框架
15.2数据驱动框架及实战
15.3关键字驱动框架及实战
15.4关键字&&数据混合驱动框架及实战
第四篇常见问题和解决方法
第16章自动化测试常见问题和解决方法
16.1如何让WebDriver支持IE 11
16.2解决“Unexpected error
launching Internet Explorer. Browserzoom
level was set to 75%(或其他百分比)”的错误
16.3解决某些IE浏览器中输入数字和英文特别慢的问题
16.4解决Firefox浏览器的cant access
dead object异常
16.5常见异常和解决方法
前言
随着互联网的高速发展,中国的互联网达到了一个空前的繁荣水平,数亿量级用户的产品登上了中国的互联网发展舞台,阿里巴巴、腾讯、百度等多个互联网巨头也开始在世界的互联网舞台崭露头角,互联网行业的从业人员也达到了上百万人的规模,中国的互联网产品已经深入到网民生活的各个方面。
随着互联网行业在中国的迅猛发展,对于中国的软件开发和测试行业也提出了更高的技术要求与质量要求,软件测试从业者的技术水平也被提升到空前的高要求阶段。以往我们看到测试人员的招聘重点都是仅限于对测试用例设计和业务的理解,现今所看到的更多测试职位对测试人员提出了更高的技术能力要求。例如,精通一门编程语言,熟悉MySQL或者Oracle数据库,精通自动化测试和性能测试,能独立开发测试工具等。为了能更好地适应互联网社会的发展潮流,软件测试从业者必须在技术能力上不断地提升自己,才能真正站在职业发展的。
自动化测试技术对测试人员来说,是一个必要的高级技能要求,越来越多的测试从业者并不甘于手工测试,都非常希望通过自动化的方式来减少枯燥无味且不断重复的手工测试劳动。尽管,主流的Web自动化测试开源工具Selenium WebDriver,已经成为众多软件测试从业者学习的热点,但是市面上针对Selenium自动化测试方面的书籍很少,基于实践方式来讲解Selenium应用技术的书籍更是凤毛麟角。我有幸受吴老邀请,将我工作中实践内容与吴老教学内容融合,一起编写了这本基于Python语言实践操作的Selenium 3教学书籍,来解决软件测试人员学习自动化测试的需求。
Selenium是一个开源的测试工具,代表了未来测试工具的趋势; 而Python则是全世界都在用的一门简洁、高效、易用、优雅的编程语言,初学者只需要花少量的时间就能上手,并完成一定量的开发任务。但本书着重点在讲解Selenium的使用技巧上,对学习Python语言有需要的朋友,请自行购买相关资料或者利用丰富的网络资源。
本书采用图文并茂的方式分步骤讲解Selenium的各种实用技巧,并且提供被测试对象的实现代码或者被测试对象的访问网址,方便读者在本地搭建自己的测试环境或者访问互联网上的被测试网址,从而能顺利地进行自动化测试技术的实践。经过我们数月的不懈努力,此书终于跟大家见面了,希望能够让读者通过本书深入掌握Selenium 3的使用技巧,帮助大家在自动化测试方向上能大展身手。我们相信,通过我们不断的努力,一定可以改变中国测试行业技术含量低的现状。
作为一个土生土长的测试人员,不懂技术,工作中经常会被各种大咖人物丢来一个不屑的眼神,甚至有的人连不屑的眼神都懒得丢,直接无视,此时我的内心是很崩溃的(大哭)。2015年,在一个机缘巧合下认识了吴老,他丰富的测试经验和过硬的技术都让我折服,我就像是一粒罅隙中的种子遇到了阳光,拼命地将自己置身于这片透着温暖的金色的阳光浴中。因为好不容易遇见这么一位低调奢华有内涵的大神,岂能放过(偷笑),于是我很乐意就死皮赖脸地揪着吴老,套他的各种本领。当时的每一天除了吃饭、工作及少量的睡觉时间,其余时间不是吃斋(看书),就是念佛(敲代码),那日子甚是枯燥,甚是无味,期盼着咸鱼能有翻身的一天。我待Code如初恋,Code虐我千百遍(苦笑),半年时间过去了,被虐得千疮百孔的我也算是摸清Code的脾气了,闲来无事也能写上几百行了,算是有点欣慰吧。
有了一定的Code功底后,开始正式进入自动化学习。自动化测试的学习是一个不断实践,不断总结,不断积累的过程。很多人会有一个错误的认识,认为自动化测试不就是一个工具的使用,一个调用别人写好的API的过程么,需要那么深厚的Code功底有何用?殊不知你此时仅是一个ToolBoy或者ToolGirl,要想随心所欲的完成各种自动化测试,无论是Web自动化、移动端自动化,还是性能自动化,都必须在拥有一定的Code功底后,方能理解这些工具底层实现的原理,并且能在当工具本身不能满足测试需求时,还能随心所欲地扩充或更改。理解了这些工具的实现思想,也就为您搭建属于自己的测试框架打下了坚实的基础。经过半年的蹂躏与被蹂躏,加之工作中的不断实践,也能搭建那么几个自己还算满意的测试框架,做得还甚是开心(偷笑),而且还能被吴老盯上,叫来编写这本书,也着实有点小开心(得意)。
这是我次写一本专著技术类的书籍,深深地感觉到把知识点用通俗易通的语言描述清楚是一件多么不容易的事,为此我投入了大量的时间与精力来组织本书的语言,如果还是存在不那么浅显易懂的语句,请先尝试从代码层面进行理解,但如果在实践本书中代码时发生了错误,请不要怀疑是我们代码的问题(坏笑),请先检查您的环境是否有问题,浏览器版本与驱动版本是否匹配,所使用的Python包版本之间是否存在版本兼容的问题,Python代码是否存在缩进问题等。如果仍然解决不了您的问题,欢迎把错误丢到笔者的脸上,我们定会马不停蹄地帮您解决。
冰冻三尺,非一日之寒,希望大家能在自动化测试学习的道路上做到博观而约取,厚积而薄发。后,祝大家工作顺利,万事如意。
本书内容介绍如下:
篇基础篇(第1~8章)
第1章介绍Selenium的发展历史及组成Selenium的工具套件,列举了Selenium 1和Selenium 2支持的浏览器和平台,讲解Selenium RC和WebDriver的实现原理,同时也介绍了Selenium 1、Selenium 2和Selenium 3的各自特点及区别。
第2章介绍在日常测试工作中常见的自动化测试目标,讲解如何获得公司管理层对于开展自动化测试的支持、如何衡量自动化测试工作的投入产出比及在敏捷开发中的应用、以及自动化测试工作的分工及测试工具的选择与推广,分享在实际项目中的实践经验,说明了学习Selenium工具的能力要求。
第3章介绍使用Selenium工具时所需要的相关辅助插件FireBug和FirePath的安装及使用方法。
第4章介绍Selenium IDE的安装、界面选项的含义、IDE的使用方法、录制脚本及导出脚本等。
第5章介绍Python开发环境和Pycharm集成开发环境的安装、配置及使用。
第6章介绍WebDriver的安装和配置方法。
第7章主要介绍单元测试的基本知识,如何在自动化测试中使用以及生成测试报告。
第8章主要讲解自动化测试过程中使用的页面元素定位方法,包括ID定位、Name定位、链接文字定位、Class定位、XPath定位及CSS定位,推荐使用XPath作为页面元素定位的主要方法。
第二篇实战应用篇(第9~11章)
第9章讲解如何使用WebDriver工具分别驱动IE浏览器、Chrome浏览器以及Firefox浏览器,进行自动化测试。
第10章通过实例全面讲解WebDriver基础API。
第11章通过实例全面讲解WebDriver高级API,并提供一些解决实际问题的方法。
第三篇自动化测试框架搭建篇(第12~15章)
第12章讲解数据驱动的概念,并基于Excel、XML、MySQL及单元测试框架结合ddt进行数据驱动测试。
第13章讲解lettuce行为驱动框架在自动化测试中的使用,分别基于英文和中文进行实例讲解。
第14章通过实例全面讲解如何基于Selenium Grid进行分布式自动化测试。
第15章深入讲解如何从零开始搭建一个数据驱动测试框架、关键字驱动测试框架以及数据驱动与关键字驱动混合的测试框架,并提供完整的框架代码。此章节为本书综合、重要的章节,建议读者在阅读完前面所有章节后再阅读此章节。
第四篇常见问题和解决方法(第16章)
第16章讲解WebDriver使用过程中常见的疑难问题及解决办法,方便读者在使用WebDriver的过程中遇到问题时进行查阅。
特别致谢
感谢我们的好朋友陈良军、李江和王浩花费大量的时间与精力帮我们校对书稿,发现了不少书写的错误、晦涩难懂的语句以及代码的错误,在此笔者们真诚地感谢他们对本书做出的贡献,帮助我们完成这件非常有意义的事情。
吴晓华王晨昕
2017年6月
在搭建Python环境前,先说明一下,笔者这里使用的Python 2.x版本。可能有人会问了,Python官网已经更新到3.x了,为什么不用版的呢?原因是Python 2.x更加成熟,Python 3.x完全相当于一门新语言,语法上跟Python 2.x有很大的区别,并且在设计上也没有考虑向下兼容,而且现在大部分第三方库、书和资料都是基于2.x版本的,这些已经为我们提供了丰富的资源,同时也由于Python 3.x在某些性能没有Python 2.x好。本书中笔者均是基于Python 2.7.7版本来讲解的。Python语言编写的Selenium自动化测试脚本,笔者选择在PyCharm集成开发环境中运行,读者也可以选择直接在文本编辑器中编写,然后通过CMD执行。如果做大型项目开发,推荐大家使用Pycharm工具,其功能很强大,能在编写程序时给我们带来很多方便,特别是代码补全,可调用函数查看等。本书所有的环境搭建以及Selenium脚本编写默认都是基于Windows 7 X64系统完成,读者如果使用的是Windows 10或者其他类型的系统,本书中部分内容可能不匹配,请读者自行做相应修改。
5.1安装Python并配置Python环境在使用一种编程语言编写程序时,首先需要搭建支持这个编程语言的开发环境,本节先讲解Python环境的搭建和配置。5.1.1下载并安装Python解释器具体操作步骤如下。(1) 访问https://www.python.org/。(2) 单击菜单栏中的Downloads,出现如图51所示的界面。
评论
还没有评论。