Selenium2自动化测试实战序言
记得很久之前接触自动化的时候看了一本关于某早期自动化测试工具的书,书名已经记不得了,内容却一直印象深刻。因为那本书根本就是把官方文档有选择性的翻译一遍,对于实际应用来说其作用几乎是零。因此从那时候起我就一直认为,对工具的介绍应该不仅仅停留在理论和了解的程度,如果没有实战,那么我们之于工具无非就是叶公好龙,一直远观,无法赏玩。
很欣慰的是虫师这本Selenium2自动化测试实战--基于Python语言并没有停留在夸夸其谈的表面,我仔细的研究了书中的代码和示例,显然很大一部分都是他在日常工作中勤奋总结而得出来的一手范例,对于技术书籍来说这是难能可贵的。
对于一本介绍自动化测试的书来说,我们其实不缺理论。国外的很多同行都不停的在传经布道,他们的结论其实很简单,自动化测试是好东西,对于提升软件质量来说,自动化测试带给我们生产力的解放收益远远要大于成本。结论我们都知道,工具我们也清楚,无非就是单元测试xunit,rspec之类,bdd测试用cucumber等等,ui层面的aut用selenium。这些工具我们都会用,而且也许用的还不错,不过为什么我们的自动化测试除了耗时费力之外根本就看不出有什么效果?
答案其实很简单,我们自以为用对了,但实际上也许我们才刚上路,甚至跟最佳实践背道而驰。这就像是拿ipad当砧板,用宰牛刀杀鸡一样,路子不对,只能越练越野,直到走火入魔。
这本书中其实提到了很多不错的实践,路子正宗,从者自然不会误入歧途,这也是我推荐他的另外一个理由。
在看本书前几章的时候,我一直不断的想起当年初出茅庐入行时候所遇到的初学者困局。我很想学一个东西,一门技术,但是到底应该从哪里开始?
万事开头难,没有师傅领进门,在不停的挫败和各种不同信息的正反面轰炸下,我们很容易举白旗放弃。
试想一下这样的场景吧:假如你是一个初学者,你从某种渠道得知你selenium是代表未来测试趋势的测试工具,是提升生产力的重要手段,是提升自己收入水平的一个不错的投资,你下定决心大干一场,准备好好的学习一下这个东西。然后你开始兴冲冲的去网络上搜索资料,然后你开始困惑,因为selenium有2个版本,1和2,并且selenium1到现在都没有完全废弃,是学1还是学2,1很经典,2很前沿,你开始由于;然后你继续深挖,你发现如果学selenium2你会遇到1个叫做webdriver的东西,那是啥?然而如果要学selenium1的话你将一直不停的看到一个叫做selelniumRC的字眼,这又是什么?现在的你也许已经有一些动摇了吧,不过噩梦才刚刚开始。你也许会遇到一些靠谱的哥们,他们会先建议你学习一门语言,因为要用selenium基本上就意味着你应该学会编程。但是selenium支持太多编程语言,ruby/python/java/javascript/objective-c/php,到底应该从哪一门语言入手,你开始陷入经典的语言之争的泥沼,你悲哀的发现自己花了很多时间去潜心研究,但最终只是模模糊糊知道了selenium在远方,面前是一堆分叉路口,每种语言看起来都不错,每个分叉路口都可以到达终点,但你就是不知道该怎样迈出第一步。这便是选择的成本,选择是有风险的,选的对事半功倍,选的不对只能半途而废。
对于很多初学者来说,上面的困局应该都是存在的。花了很对精力和时间,但最终却发现一切都是徒劳,做了很多功课,但真正该做的事情却未曾开始。
好在这本书能够很好的解决这个困局。你不需要选择,这本书描述的就是selenium2,代表了主流代表了未来,用的语言是python,全世界都在用,代表了简单高效,代表了经典和优雅。很有意思的是python自身的哲学里也认为最好只用一种方法来做一件事(你可以打开python解释器,然后import this试试),免去选择的苦恼。你应该把精力放在更有意义的事情上,比如多写几个自动化测试用例,而不是纠结于各种选择徘徊不前。
然后便是初学者困局里更加常见的一个问题,如何去搭建环境。我遇到过不少人倒在这里,而且前赴后继,无限循环。如果你有这本书的话那这些问题应该不是核心问题,跟着虫师描述的步骤一步步来吧,循序渐进而又节奏轻快。
搭建好了环境,写好冒烟脚本之后敢问路在何方又是初学者常见的问题。因为selenium没有官方中文文档,啃英文实在不是一件愉快的事情。也许你好不容易看懂了解释,却发现官方的示例离自己身处的环境相差太多,官方的例子一直是google搜索,发gmail,而你却悲哀的发现在根本就没有gmail这个网站。这本书不仅仅非常详尽的介绍了selenium的api,而且给出了非常多可以运行的本土化的示例,这对初学者和其他程度使用者来说都是福音,有些例子很棒,你试过就知道。
其实试完webdriver的各种api,你应该已经算入门了。入门了之后便是更多的困惑,比如如何去写测试用例,如何做基于数据的用例设计,如何分布式执行用例,如何多线程执行用例等,这些本书都有答案。
最后便是bdd和ci,说实话如果一本介绍自动化测试的书没有这两项内容的话都是不完整的。如果自动化是彩虹,那么ci便是风雨,不经历风雨怎会见彩虹。没有ci,自动化其实找不到太多的应用场景,没有自动化,ci更是无从说起了。尽管本书的重点不在ci,但本书的终点在ci,就像是指出了宿命的依归,独具匠心。
还记得上次跟虫师见面时候的情景,应该已经有2年多了。时过境迁,曾经我们上班的地点就在隔壁,如今发现时间逝去,很多东西都已改变。不过难能可贵的是虫师对测试技术的追求一直不曾更改,一直笔耕不辍,这本书其实也算是水到渠成的结果了。勿忘初心,坚持自己,最后希望这本书能多帮助一些人,我想这应该也是虫师的初衷吧。
Selenium2自动化测试实战序言的更多相关文章
- 《Selenium2自动化测试实战--基于Python语言》 --即将面市
发展历程: <selenium_webdriver(python)第一版> 将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...
- selenium2自动化测试实战--基于Python语言
自动化测试基础 一. 软件测试分类 1.1 根据项目流程阶段划分软件测试 1.1.1 单元测试 单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程. 1.1.2 集成测试 ...
- Selenium2自动化测试实战(基于Python语言)— 编写第一个自动化脚本
实现效果:执行脚本后启动Firefox浏览器后进入百度主页,输入“Selenium”后,单击搜索按钮,最后关闭浏览器的过程(默认安装了Firefox浏览器),如下图所示: 脚本内容如下: # -*- ...
- Selenium2+Python自动化测试实战
本人在网上查找了很多做自动化的教程和实例,偶然的一个机会接触到了selenium,觉得非常好用.后来就在网上查阅各种selenium的教程,但是网上的东西真的是太多了,以至于很多东西参考完后无法系统的 ...
- selenium2自动化测试学习笔记(一)
从这周开始学习自动化测试,采用selenium2,目标是在本月学习到appium,并测试公司的真实APP项目. 系统环境:win10 语言:python3.6.4 工具:selenium2 IDE:p ...
- 关于《Selenium3自动化测试实战--基于python语言》
2016年1月,机缘巧合下我出版了<Selenium2自动化测试实战--基于python语言>这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目 ...
- 《selenium2 Java 自动化测试实战(第二版)》 更新2016.5.3
java 版来了!! 本文档在<selenium2 Python 自动化测试实战>的基础上,将代码与实例替换为java ,当然,部分章节有变更.这主要更语言本身的特点有关.集合和java下 ...
- selenium2 Webdriver + Java 自动化测试实战和完全教程
selenium2 Webdriver + Java 自动化测试实战和完全教程一.快速开始 博客分类: Selenium-webdriverselenium webdriver 学习selenium ...
- selenium2 python自动化测试实战(回归测试)
selenium2 python自动化测试实战 最近接手商城的项目,针对后台测试,功能比较简单,但是流程比较繁多,涉及到前后台的交叉测试.在对整个项目进行第一轮测试完成之后,考虑以后回归测试任务比较重 ...
随机推荐
- vmware产品框架-计算中心,5.1更新等
概述:SRM,5.1新特性,vCenter Operations的介绍等 5.1改进参见:http://wenku.baidu.com/view/26530362a98271fe910ef961.ht ...
- MySql安装完成后设置远程访问的角本
一.方法: 登陆安装Mysql的机器的Mysql, 执行: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password001!' ...
- Word转PDF非常好用的软件——pdfFactory Pro
pfdFactory Pro把word转为pdf的操作步骤: 1.打开将要转换的word的文档: 2.文件--->打印: 弹出如下对话框: 单击确定后弹出:
- Customize Web Sessions List
To customize Fiddler's Web Sessions List, add rules using FiddlerScript to the OnBeforeRequest funct ...
- 《简明Python教程》读书笔记
1:help 需要获取Python中任何函数.类型的信息,使用 help('内容') 命令查看帮助,按 q 退出帮助. 2:格式化字符串 format 方法是数据格式化的重要方法. 字符串 ...
- Spring解决Hibernate中的懒加载问题
OpenSessionInViewFilter 过滤器将 Hibernate Session 绑定到请求线程中,它将自动被 Spring 的事务管理器探测到. <filter> ...
- 【Java】监控远程服务器JVM
今天在用JMeter进行测试的时候,发现线程并发量到50的时候会导致阻塞情况,于是需要监控远程JVM,那么如何监控远程JVM呢? 首先,找到启动计量引擎的sh文件,例如我目前的计量引擎启停文件为str ...
- 5、探秘JDK5新并发库之原子性操作类
java.util.concurrent.atomic包里提供了 AtomicBoolean 可以用原子方式更新的 boolean 值. AtomicInteger 可以用原子方式更新的 int 值. ...
- 从JSF看XPages的优点
我们都知道XPages基于JSF,或者可以说XPages是JSF标准的实现(implementation)之一.JSF从2004年的1.0到现在的2.0,已经经历了很大的变化和发展.XPages最初开 ...
- C++高性能转换大小写算法
简述 有一个需求,是需要将URL中的query参数的key全部转换为小写或者大写,键值对的数量有点多,但全部都是英文字母,无需考虑非字母的情况. 实现比较快的做法是使用STL或C标准库中的转换接口,如 ...