《Google软件测试之道》—第2章2.5节与Web Driver的创建者Simon Stewart的对话
本节书摘来自异步社区《Google软件测试之道》一书中的第2章2.5节与Web Driver的创建者Simon Stewart的对话,作者【美】James Whittaker , Jason Arbon , Jeff Carollo,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.5 与Web Driver的创建者Simon Stewart的对话
Simon Stewart是WebDriver的创建者,也是Google在浏览器自动化领域的专家(译注:Simon于2013年离开Google加盟Facebook)。WebDriver是开源Web应用自动化测试工具,不仅在Google内部,在业内也广受欢迎,也是GTAC(Google测试自动化大会)历史上最热门的话题之一。我们的采访记者和Simon一起做了这个访谈,Simon在这里讨论了Web应用自动化的话题和关于WebDriver未来的一些想法。
HGTS:好像很多人并不清楚Selenium和WebDriver之间的区别,你能解释一下吗?
Simon:Selenium是Jason Huggins在ThoughtWorks时创建的一个项目。Jason那个时候写了一个Web应用,假定用户使用的浏览器是IE。这样做可以理解,因为那个时候IE有百分之九十多的市场占有率。但是他持续不断的得到用户反馈,指出这个应用在Firefox浏览器上有bug,这个时候他就碰到一个问题,当他修复Firefox上的bug的时候会导致在IE上出现另外的问题。对他来说,Selenium是一个可以加速开发应用程序的工具,可以确保每次变更在两个浏览器上都可以正常工作。
大概在一年前,或者不到一年的样子,我真正开始去创建WebDriver。但在Selenium真正稳定之前,我的主要精力集中在更加通用的Web应用测试上。这并不奇怪,我们两个使用了不同的方法来实现Web自动化。Selenium在浏览器内部使用JavaScript实现,而WebDriver使用浏览器本身的API集成到浏览器内部。两种方法各有优劣。例如,Selenium可以在瞬间打开一个新的Chrome浏览器,但却不能上传文件或者很好地处理用户交互,因为它是JavaScript实现,必须限定在JS沙箱之内。由于WebDriver构建在浏览器里面,它可以突破这些限制,但打开一个新的浏览器却比较痛苦。在我们都开始为Google工作的时候,我们决定把这两个集成到一起。
HGTS:但我还是听到人们在分别谈论它们。它们还依然是两个独立的项目吗?
Simon:对于所有浏览器自动化工具集,我称为Selenium。WebDriver只是其中的一个工具,官方的名字是“Selenium WebDriver”。
HGTS:那么Google是如何介入进来的呢?
Simon:几年前,Google在创建了London office的时候,雇佣了一些Thoughtworks的前员工,这些人邀请我去做一个关于WebDriver的技术分享。这次分享并没有给我带来什么信心,前排的一个家伙听着听着居然睡着了,我在分享的过程中必须与他的鼾声做斗争。碰巧的是,这个分享的录制设备也坏了。但还是有很多人对此感兴趣,于是我们再次被邀请在GTAC上做一个没有鼾声的分享。之后我很快就加入了Google。现在我也知道那个事情的真相了。
HGTS:确实,每个人有自己的秘密。说正经的,我们之前也看过你的分享,很难想象有人会睡着。他是我们认识的人吗?
Simon:不,他已经离开Google很久了。我们还是假设他前一天晚上熬夜了比较好。
HGTS:我们必须从中吸取教训。大家需要明白,在Simon Stewart的分享过程中睡觉,对你的职业生涯是非常不利的。自从你加入了Google,WebDriver是你的全职工作吗?
Simon:不,这只是我20%的工作。我的主要工作是一个产品的SET,虽然我现在还在负责推进WebDriver的前进,但已经有外部的贡献者了,他们做的非常棒。在一个开源项目的早期阶段,人们拿过来使用,因为他们需要这样的项目,而且也没有其他可以替代的。内在的激励就是要去贡献。现在许多WebDriver的用户都在口口相传如何去使用操作,这些用户更像是消费者,而不是贡献者。但在早期,WebDriver社区的草根却在真正地推进这个工具向前发展。
HGTS:我们知道故事的来龙去脉了。WebDriver在Google内部非常受欢迎,这是怎么开始的?是有试点的项目吗?有没有一些错误的教训呢?
Simon:这是一个社交网络产品,在Wave团队最先开始使用。该团队位于Sydney的办公室,但这个团队现在却已经不存在了。Wave的工程师尝试去使用Selenium作为他们的测试框架,但是却无法解决一些问题。Wave实在是太复杂了。工程师们很勤奋,找到了WebDriver并开始问许多优秀的问题,然后这变成了我20%的时间要处理的事情。他们找到我的老板,希望我能在去Sydney待上一个月,帮助他们建立自己的测试框架。
HGTS:我想你当时成功了。
Simon:是的,那个团队很棒,我们把框架做出来了。提出了大量针对WebDriver的新需求,这对于其他的团队也是一个榜样,WebDriver在Web应用方面处于领先地位。从那一刻开始,WebDriver就再也没有缺少过用户,对于我来说,全身心的投入进去也更有意义。
HGTS:第一个用户总是最难的。你是怎么改进WebDriver,并让它可以在Wave团队工作的?
Simon:我使用了一个被称为DDD(译注:defect-driven development)的流程,缺陷驱动开发。我总是宣称WebDriver是完美无瑕的,一旦用户发现了一个bug,我就立刻去修复它,然后再宣布它没有问题了,更加完美无瑕。这样的话,可以确定我修复的bug是一些人们真正关心的bug。这对于改善一个已有产品是非常有用的,这可以确保你是在修复最重要的bug,而不是修复人们并不关心的bug。
HGTS:你还是WebDriver里唯一的工程师吗?
Simon:不,我们有一个团队,WebDriver是Google内部的一个正式项目,并在开源方面非常活跃。随着浏览器数量、版本和平台的不断增加,我们告诉大家我们必须很疯狂,我们每天都在把不可能的事情变成可能。有时候我觉得比较理智的人其实并不适合做我们这个项目。
HGTS:在Wave项目之后你得到了很多动力。对于用户来说,是否意味着WebDriver替代了旧的Selenium的地位?
Simon:我想是的。许多原来Selenium工程师都去做其他事情了。由于在Wave上的成功,我对WebDriver也充满了信心和能量。一些我从来没有见过的人,如来自德国的Michael Tam,已经开始在WebDriver上做一些重要的工作了,我也很小心地鼓励这样的关系模式。Michael是第一个我没有真正见过就有提交代码权限的人。
其实我并没有特别地跟进WebDriver的扩张。比较明确的是,在物理位置上离我近的团队,更愿意去使用WebDriver。我想Picasa网络相册团队事实上是第一个真正使用WebDriver的团队,而且是在Wave团队之前,然后Ads也开始使用了。在Google,不同团队在使用各自的Web自动化框架。Chrome在使用PyAuto,Search在使用Puppet(有一个开源的版本叫做Web Puppeteer),Ads使用WebDriver,等等。
HGTS:WebDriver的未来会怎样?你们团队有什么目标吗?
Simon:好吧,目前看起来还有点乱。即便是在几年前,在市场上还有一个主流的浏览器,但现在没有了。IE、Firefox、Chrome、Safari、Opera等都拥有了自己的市场。但这还只是桌面版的而已。在移动端的浏览器引擎也正在疯狂地扩张。在2008年以后,许多商用的浏览器自动化工具把他们都给忽略了,IE除外,这其实是非常不明智的做法。下一步,WebDriver会在标准化上发力,这样可以保证相同的网络应用代码在不同的浏览器上都可以工作。当然,这也需要浏览器厂商一起参与进来,支持我们的WebDriver API。
HGTS:这听起来好像是标准委员会要做的事情。目前有什么进展吗?
Simon:是的,有一些。很不幸地是,我必须去写一些英文文档,而不是编写代码了,在W3C里有一个文档,所有的浏览器开发商都会参与进去。
HGTS:你希望的未来是怎样的?未来的浏览器自动化工具又是如何工作的呢?
Simon:我希望他们都消失到后台之中。自动化的API会对所有浏览器适用,人们不用去担心这些基础框架,他们仅仅去使用即可。希望人们能把更多的精力放在他们Web应用本身,而不是如何去自动化上。在人们真正忘了WebDriver的存在之后,我们就成功了。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
《Google软件测试之道》—第2章2.5节与Web Driver的创建者Simon Stewart的对话相关推荐
- 《Google软件测试之道》目录—导读
内容提要 Google软件测试之道 每天,Google都要测试和发布数百万个源文件.亿万行的代码.数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行.面对这些看似不可能完成的 ...
- 《Google软件测试之道》—第2章2.4节与工具开发工程师Ted Mao的访谈
本节书摘来自异步社区<Google软件测试之道>一书中的第2章2.4节与工具开发工程师Ted Mao的访谈,作者[美]James Whittaker , Jason Arbon , Jef ...
- 《Google 软件测试之道》摘录
最近刚刚看完<Google 软件测试之道>,受益颇多,遂记录下: 只有在软件产品变得重要的时候质量才显得重要 第一章:谷歌软件测试介绍 角色介绍 SWE(Software Engineer ...
- 《Google软件测试之道》- Google软件测试介绍
<Google软件测试之道>- Google软件测试介绍 2015-05-21 目录 1 质量与测试 2 角色 3 组织结构 4 爬.走.跑 5 测试类型 相关链接 与 ...
- 《Google软件测试之道》读书笔记
Google软件测试之道 像google一样进行软件测试 软件测试介绍 少则清晰,测试人员的稀缺导致测试资源很昂贵.(不要招聘太多的测试人员) 质量不等于测试 开发对质量负责(预防行为,不是检测) 卫 ...
- 《Google软件测试之道》有感
Google软件测试之道有感 谷歌测试工程师给我的感觉 他们做了些什么 A&Q 谷歌测试工程师给我的感觉 如他们的招聘要求,有很多想法,并且有能力去实现.印象深刻的是,有一位为了实现自己的想法 ...
- 《Google软件测试之道》告诉你什么是测试
Google软件测试介绍 1.Google的测试团队并非雄兵百万,我们更像是小而精的特种部队,我们依靠的是出色的战术和高级武器 2.在Google,写代码的开发人员也承担了测试的重任.质量从来就不仅仅 ...
- Google软件测试之道(读书笔记)
目录 第一章 Google软件测试介绍 第二章 软件测试开发工程师 第三章 测试工程师 第四章 测试工程经理 第五章 Google软件测试改进 第一章 Google软件测试介绍 角色.类型.行为.组织 ...
- Google软件测试之道
目录 一.Google软件测试介绍 1.质量不等于测试 2.角色 3.组织结构 4.爬.走.跑 5.测试类型 二.软件测试开发工程师 三.测试工程师 1.一种面向用户的测试角色 2.测试工程师的工作 ...
最新文章
- Swift 基本基本运算符
- matlab fminimax 多变量,Matlab应用实例(8)—fminimax
- 前缀和?or差分序列?
- 2012年08月13日
- 『设计模式』外观模式--这篇博客也太明了吧
- PIFO到底是什么?【Programmable Packet Scheduling at Line Rate】
- Unity Shader:雾的数学运算以及在Unity中使用Fog
- android沉浸模式代码,Android沉浸式的两种方法
- 必应拼音输入法与搜狗拼音输入法体验性分析检测
- c语言中输出值作用,printf在c语言中什么意思
- 算法题解 - 牛客编程巅峰赛S1第4场 - 黄金钻石组
- java 微信网页授权_java微信网页授权获取openid(第十四课)
- Mint-ui MessageBox.confirm 确定和取消事件
- Debian10配置IP地址、DNS、主机名
- bert获得词向量_NLP中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
- cati服务器授权信息无效,CATI基础知识介绍(四)
- iOS开发-Please sign in with an app-specific password. You can create one at appleid.apple.com
- html大作业网页代码 ——2019凡客服装店铺商城(1页) HTML+CSS+JavaScript HTML+CSS大作业_ 服装店铺网页制作作业_购物网页设计...
- 几张图看懂区块链是什么?
- C语言解决猴子吃桃子问题
热门文章
- ValueError: Connection error, and we cannot find the requested files in the cached path.解决方案
- Java输出特殊偏旁的汉字,输出个人基本信息
- SharePoint 混合单点--Azure访问控制服务(ACS)与S2S身份验证信任
- 关于安装composer提示could not open input file composer.phar的问题解决
- WKWebView1 加载带图文富文本
- 电机马达带负载转矩前馈补偿的永磁同步电机无感FOC 采用龙伯格负载转矩观测器,可快速准确观测到负载转矩
- Rearrange 函数
- SDUT Greatest Number
- 机器学习原来如此简单,万能模板直接用
- ”爱情密码“帖的故事--从实例中学懂摩尔密码