本书分为14个章节,第1章是自动化测试相关基础知识的介绍;第2章到第10章是本书的重点,循序渐进地介绍了自动化测试所用到的技术;第11章通过一个具体的项目综合运用了前面章节所介绍的技术与技巧。第12章到第14章选取了当前热门的技术进行了介绍,旨在扩展测试人员的综合技术能力。 本书的写作目的并不是为了简单地告诉读者如何使用一个自动化测试工具,而是希望读者在学习本书的内容后能够提高综合的技术高度与宽度,从而摆脱简单的手工测试,向高级测试工程师的道路迈进。
胡志恒 魅族科技(深圳)分公司高级测试工程师。2011年6月开始在博客园上持续分享各种测试技术和经验,文章多次被51testing等网站转载,精通性能测试、自动化测试等技术。
第 1章 自动化测试基础 ............................................................................................................. 1? 1.1 软件测试分类 ........................................................................................................ 1? 1.2 分层的自动化测试 ................................................................................................ 6? 1.3 什么样的项目适合自动化测试 ............................................................................ 9? 1.4 自动化测试及工具简述 ...................................................................................... 10? 1.5 Selenium 工具介绍 .............................................................................................. 11? 1.6 前端技术介绍 ...................................................................................................... 14? 1.7 前端工具介绍 ...................................................................................................... 16? 1.8 开发语言的选择 .................................................................................................. 19?
第 2章 测试环境搭建 ............................................................................................................... 21? 2.1 Windows 下的环境搭建 ...................................................................................... 21? 2.1.1 安装 Python .............................................................................................. 22 2.1.2 安装 setuptools 与 pip .............................................................................. 24 2.1.3 安装 Selenium .......................................................................................... 26 2.1.4 ActivePython ............................................................................................ 26 2.2 Ubuntu 下的环境搭建 ......................................................................................... 28? 2.3 使用 IDLE 编写 Python ....................................................................................... 29? 2.4 编写个自动化脚本 ...................................................................................... 32? 2.5 安装浏览器驱动 .................................................................................................. 34? 2.6 不同编程语言下使用 WebDriver ........................................................................ 35?
第 3章 Python 基础 .................................................................................................................. 37? 3.1 Python 哲学 .......................................................................................................... 37?
目 录 ∣ IX
3.2 输出与输入 .......................................................................................................... 39? 3.2.1 print 打印 .................................................................................................. 40? 3.2.2 input 输入 ................................................................................................. 41? 3.2.3 引号与注释 .............................................................................................. 41? 3.3 分支与循环 .......................................................................................................... 43? 3.3.1 if 语句 ....................................................................................................... 43? 3.3.2 for 语句 .................................................................................................... 45? 3.4 数组与字典 .......................................................................................................... 47? 3.4.1 数组 .......................................................................................................... 47? 3.4.2 字典 .......................................................................................................... 47? 3.5 函数、类和方法 .................................................................................................. 49? 3.5.1 函数 .......................................................................................................... 49? 3.5.2 类和方法 ..............................................................................
推荐序
记得很久之前接触自动化的时候看了一本关于某早期自动化测试工具的书,书名已经 记不得了,内容给我留下了深刻印象。因为那本书根本就是把官方文档有选择性地翻译一 遍,对于实际应用来说其作用几乎是零。因此,从那时起我就一直认为,对工具的介绍不 应该不仅仅停留在理论和了解的程度,如果没有实战,那么我们之于工具无非就是叶公好 龙,一直远观,无法赏玩。 很欣慰的是,虫师这本《Selenium 2 自动化测试实战——基于 Python 语言》并没有停 留在夸夸其谈的表面,我仔细研究了书中的代码和示例,显然,很大一部分都是他在日常 工作中勤奋总结而得出的一手范例,对技术书籍来说,这是难能可贵的。
对一本介绍自动化测试的书来说,我们其实不缺理论。国外的很多同行都在不停地传 经布道,他们的结论其实很简单,自动化测试是好东西,对提升软件质量来说,自动化测 试带给我们生产力的解放收益要远远大于成本。结论我们都知道,工具我们也清楚,无非 就是单元测试用 xunit、rspec 之类,BDD 测试用 cucumber,UI 层面的 aut 用 Selenium,等 等。这些工具我们都会用,而且也许用得还不错,不过为什么我们的自动化测试除了耗时 费力,根本就看不出什么效果呢?
答案其实很简单,我们自以为用对了,但实际上也许我们才刚上路,甚至跟实践 背道而驰。这就像是拿 iPad 当砧板,用宰牛刀杀鸡一样,路子不对,只能越练越野,直到 走火入魔。
这本书其实提到了很多不错的实践,路子正宗,从者自然不会误入歧途,这也是我推 荐它的另外一个理由。
在看本书前面几章的时候,我总是不断地想起当年初出茅庐入行时所遇到的初学者困 局。我很想学一门技术,但是到底应该从哪里开始?
万事开头难,没有师傅领进门,在不停的挫败和各种不同信息的正反面轰炸下,我们 很容易举白旗放弃。 试想一下这样的场景:假如你是一个初学者,你从某种渠道得知 Selenium 是代表未来 测试趋势的测试工具,是提升生产力的重要手段,是提升自己收入水平的一个不错的投 资,于是你下定决心大干一场,准备好好地学习一下这个东西。你开始兴冲冲地去网络 上搜索资料,然后你开始困惑,因为 Selenium 有两个版本:Selenium 1 和 Selenium 2,并 且 Selenium 1 到现在都没有废弃,是学 Selenium 1 还是学 Selenium 2?Selenium 1 很经 典,Selenium 2 很前沿;然后你继续深挖,你发现如果学 Selenium 2,就会遇到 Selenium 1 中一个叫 Webdriver 的东西,那是啥?然而如果要学 Selenium 1,你将一直不停地看到一个 叫 Selelnium RC 的字眼,这又是什么?现在的你也许已经有一些动摇了吧,不过噩梦才刚 刚开始。你也许会遇到一些靠谱的人,他们会建议你先学习一门语言,因为如果要用 Selenium,基本上就意味着你应该学会编程。但是 Selenium 支持太多的编程语言,例如, Ruby、Python、Java、Javacript、Objective-C、PHP,到底应该从哪一门语言入手,你开始 陷入经典的语言之争的泥沼,你悲哀地发现自己花了很多时间去潜心研究,但终只是模 模糊糊知道了 Selenium 在远方,面前是一堆分岔路口,每种语言看起来都不错,每个分岔 路口都可以到达终点,但你就是不知道该怎样迈出步。这便是选择的成本,选择是有 风险的,选对了事半功倍,选不对只能半途而废。
对很多初学者来说,上面的困局应该都是存在的。花了很多精力和时间,但终却发 现一切都是徒劳;做了很多功课,但真正该做的事情却未曾开始。 好在这本书能够很好地解决这个困局。你不需要选择,这本书描述的就是 Selenium 2, 代表了主流,也代表了未来;用的语言是 Python,全世界都在用,它简单、高效、经典、 优雅。很有意思的是,Python 自身的哲学里也认为只用一种方法来做一件事(你可以 打开 Python 解释器,然后 import this 试试),免去选择的苦恼。你应该把精力放在更有意 义的事情上,比如多写几个自动化测试用例,而不是纠结于各种选择,徘徊不前。
然后便是初学者困局里更加常见的一个问题:如何搭建环境?我遇到过不少人倒在这 里,而且前赴后继,无限循环。如果你有这本书,那这些问题应该都不是问题,跟着虫师 描述的步骤一步步来吧,循序渐进而又节奏轻快。
搭建好环境并写好脚本之后,敢问路在何方又是初学者常见的问题。因为 Selenium 没 有官方中文文档,啃英文实在不是一件愉快的事情。也许你好不容易看懂了解释,却发现 官方的示例离自己身处的环境相差太多,官方的例子一直是 Google 搜索,发 Gmail,而你 却悲哀地发现根本就没有 Gmail 这个网站。这本书不仅非常详细地介绍了 Selenium 的 API, 而且给出了非常多可以运行的本土化的示例,这对初学者和其他使用者来说都是福音,有 些例子很棒,你试过就知道。 其实试完 WebDriver 中的各种 API 后,你应该算入门了。入门了之后便是更多的困惑, 比如如何去写测试用例,如何做基于数据的用例设计,如何分布式执行用例,如何多线程 执行用例等,而这些答案都在本书中。 后便是 BDD 和 CI,如果一本介绍自动化测试的书没有这两项内容,那它一定是不 完整的。如果自动化是彩虹,那么 CI 便是风雨,不经历风雨怎会见彩虹。没有 CI,自动 化其实找不到太多的应用场景;没有自动化,CI 更是无从说起。尽管本书的重点不是 CI, 但本书的终点在 CI,就像是指出了宿命的依归,独具匠心。
还记得上次跟虫师见面时的情景,应该已经有两年多了。时过境迁,曾经我们上班的 地点就在隔壁,如今发现时间逝去,很多东西都已改变。不过难能可贵的是虫师对测试技 术的追求一直不曾更改,也一直笔耕不辍,这本书其实也算是水到渠成的结果。勿忘初心, 坚持自己,后希望这本书能多帮助一些人,我想这应该也是虫师的初衷吧。
乙醇
一直想买,趁着周末买了!棒
陈v滚滚滚
内容编排合理,很适合新手入门
包装不错哦 整体感觉不错 性价比很高 印刷很正 纸质好
书中的图片不是很清楚,尤其黑色背景的
书和纸质还可以,包装有点简陋,没能很好的保护书
有优惠的时候买的,有用。希望后期对我有所帮助
物流没有及时更新,快递员送货时候没有联系我而是直接放到了小区超市。要不是去超市买东西都不会发现快递已经到了,而且物流有点慢
挺好的,讲的很清楚
评论还得审核,就冲这个,给你半个星
好评!物流也快!
物流超级慢,根本没有实战的项目,但是语言比较简洁易懂。
书籍还可以
送给朋友的,如果她看了有用,我再来买一本
公司图书买的,看着还是不错的
不错,挺实用的。
这本书的少了第11章的内容,中间充第十章直接到了第十二章,没找到渠道解决这种问题
很好,难得找到python版本的selenium
挺好的,之前看过电子书,所以这本很快就看完了
书本包装还可以,纸张质量还好的。内容还没审阅,暂不评论。
为什么后面两章的内容没有,物流不行,太慢了。好几天才到
之前一直只是网上自学,没有系统的学。现在下定决心好好学一下。听闻这书不错,平时自学也有逛过虫师博客。特意买来学习下
一直信赖书虫的测试书籍,内容很容易理解,但要有python基础
第一次买虫师的书,算是自动化的入门教程了,写得很详细,内容也不枯燥。
期待已久的虫师写的干货,对自动化测试学习非常有帮助,感谢作者!
有很多实例,比较浅显,适合入门初学者看吧,就是有点过时了,毕竟selenium3已经出来了,而且firefox更新后需要下载geckodriver不然运行总是报错这点书上内容已经过时了。很多地方由于版本更新,网页更新,代码已经不适用了,需要自己改动。
Selenium 2自动化测试相关领域的经典书籍,必读之选,书香节活动,很实惠。很不错。
Selenium 2 自动化测试实战——基于 Python 语言这本书还是有一定的含金量的,值得看一看。而且里面有一些范例,可以跟着做一做,相信会有一定的提高。