Selenium Web Driver自动化测试(java版)系列下半部分(1) - 什么是selenium web driver

从这篇我们就开始介绍Selenium web driver了,这也是这个系列教程的核心。selenium web driver翻译过来就是一个叫selenium的用于web应用程序的自动化测试工具集。就这么一个定义还有点绕,念起来还挺费劲。我先给大家解释一下。首先,与其说它是工具集还不如说是一个类库。我们学习java的时候知道它其中一个重要组件就是类库。通常一个类库里提供了为实现某些功能已经写好的函数方法。和Excel的POI以及数据库的jdbc一样,selenium web driver其实就是一种类库,它里面的方法可以在页面上做自动化测试;

其次,selenium字面上翻译过来叫硒,是一种化学元素的名称,据我所知是开发者和同事开玩笑无意起的名,你或许也知道,有时候歪果仁挺冷的,反正我要是selenium发明者肯定不叫这个名,既不高大上也不小清新。当然,我已经不可能是它的发明者了,否则我早成了软件界的明星了。不过虽然我不是明星,但selenium web driver经过这几年的迅猛发展,早已成为自动化测试世界的明星了,可以说已经是web自动化测试不可或缺的中流砥柱之一。Driver的英文大家都知道,是司机的意思,在咱们这里翻译成驱动,你别翻译成老司机。因为驱动是Selenium自动化框架的重要元素,也是核心之一,用driver给整个框架工具包命名可见一斑;

第三,自动化。定义上说以人为驱动的测试行为转化为机器执行的一种过程,说白了就是用你写的代码来代替你的手在网页上做操作。我刚接触的时候觉得还挺神奇,就感觉电脑被人控制了一样,浏览器自动打开了,网页自动打开了,然后网上的按钮链开始被自动点点点。一开始觉得没什么,后来一想,细思极恐。还好自己知道是怎么回事,这要是爸妈之类的不懂技术的看到就尴尬了,夜里失眠上网看新闻,突然浏览器自己打开了然后还自己动动动。。。

第四,selenium web driver很强大,但也有局限性。因为它只能测web应用程序的界面,对于网页来说就是浏览器返回的页面,不能测别的。有人说搞笑,大家上网不都是看网页吗?还能测啥别的?其实不然。大家看到的网页其实只是在web应用当中的最后一层,网页上的那些数据都是经过各种业务处理最后返回的,是动态变化的。你上网看新闻的时候,那些网页每天看上去虽然结构和页面显示都差不多,但新闻内容都是变化的。这些变化的过程是在后台发生的,而后台代码里有业务逻辑层,有接口,还有组成功能的单元代码。虽然上网时感觉网页跳转起来速度很快,尤其网速快的时候压根没感觉,恨不得眨个眼睛搜狐就变成了搜狗,但其实过程很复杂。所以,我第一节课就说过,说软件测试的时候,我们一般谈论的是三种 – 界面测试(UI层),集成/接口测试(API层),单元测试层(Unit Testing)。自动化测试通常就是针对界面层,所以selenium web driver也就无法深入到更深的层次。

讲什么都要讲前世今生,这种惯例最长久,那我也就不免俗啦。2004年的时候一个美国团队开发了一个可以用来做测试的工具,名字里也有selenium,但叫Selenium Remote Control,简称Selenium RC。你写一段测试程序,运行的时候这个工具可以把一段javascript代码嵌到你的浏览器里,然后负责把你程序里的命令传给浏览器,然后就像我刚才说的,浏览器自动打开,自己开始运行。打个比方,这个Selenium RC就好比是一个房产中介,你的程序是业主,浏览器是租户。你委托中介帮你租房,中介把你的要求转达给租户,租户按要求住房,交房租,或是维护房间。整个过程你是不用见租户的,中介来负责。

正因为有这么个“中间商”,所以执行速度会比较慢。后来有很多人对这个工具感兴趣,一个日本人开发出了一个叫Selenium IDE的插件,可以在不用写代码的情况下通过录制回放来进行测试,有点QTP的意思。但它功能很有限,不能进行大规模测试代码的编写和操控,并且只能用在firefox浏览器上,大家还是觉得不满意。当时自动化测试已经蓬勃发展,既要测试效果又要测试速度,所以selenium家族又诞生了一个成员叫selenium grid,用于跨浏览器跨操作系统集群测试。selenium IDE,selenium RC和selenium grid也就形成了selenium最初的样子,标记为1.0版本。后来在各方人士持续努力下,终于在2011年让Selenium web driver横空出世,它是基于RC的,或者说是把二者聪明地进行合并,大大提高了执行速度。就像我刚才说的,因为它让你的代码直接跟浏览器对话,直接操作网页元素。这个版本也被称为2.0。业主直接跟租户交流,没有中介的参与了。

现在基本上没人用RC了,随着selenium web driver 3.0版本出来RC就已经逐渐谢幕,所以我们掌握web driver就可以胜任界面层的自动化测试了。这也是我未来满心期待要跟大家分享的。我们会以2.0为主体,中间穿插3.0的一些新的特性,从如何创建driver这么一行简单的代码开始,说到最后一起来完成一个完整的实际项目自动化测试框架。所以,稍微复习一下我前面讲的java基本知识,我们下一篇正式开始。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,273评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,349评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,709评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,520评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,515评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,158评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,755评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,660评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,203评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,287评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,427评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,122评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,801评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,272评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,393评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,808评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,440评论 2 359

推荐阅读更多精彩内容