Selenium⾯试问题和答案-2
1.你能解释下Selenium这个框架吗?
这个问题在⾯试中被问到的概率还是⽐较⾼的,同样类似的问题有,selenium的原理是什么?⾸先不要被这个问题吓到,我们主要围绕selenium的历史版本演化和基本的组件去展开描述就好,最后回到webdriver这个组件上⾯,我们基本上都是在使⽤webdriver提供的API。所以这个题⽬的最好的答案就是把图画出来,然后⾃⼰解释⼏句就可以。
早期Selenium1.0是有Selenium Grid,Selenium RC, Selenium IDE, Webdriver四部分组成,后来Selenium RC和Webdriver合并之后,就是Selenium2,当前我们在使⽤Selenium3
selenium怎么使用
Selenium Grid:它是selenium框架的⼀部分,主要是专门⽤来把测试⽤例并⾏地在不同浏览器,不同操作系统,不同机器上运⾏。⼀般我们写脚本,调试都在单机上线性地⼀个测试⽤例接着⼀个测试⽤例执⾏下去。如果有⼈问题如何提⾼测试⽤例执⾏效率,告诉他Selenium Grid可以实现。
Selenium IDE: 这个算Selenium⾥⾯最简单的⼀个组建,只⽀持在⽕狐浏览器上安装这个扩展程序,⽀持录制web ui脚本,然后导出不同语⾔的脚本,例如java c#等。这个功能算鸡肋,因为很多时候导出脚本debug的时间还不如⾃⼰代码重新写来的快。
Selenium RC: RC是remote control的缩写,主要的功能就是让你不管使⽤什么语⾔(Selenium⽀持的这⼏种语⾔之⼀)来写测试脚本,只要是这个浏览器⽀持java script,那么写⼀遍测试脚本,都能在这些不同浏览器运⾏脚本。
Webdriver:这个是⽤来替代Selenium RC,就是⼀个⽹页⾃动化⼯具,⽀持在不同浏览器上运⾏测试脚本,运⾏速度⽐Selenium RC要快很多。据说(我也记得不清楚),webdriver最早是google内部开发的⼀个⼯具,⽤来捐给selenium了,变成开源了。
⽬前,我们做的web ui的⾃动化测试,⼤部分都是在使⽤webdriver提供的API来模拟⼿动测试过程中的⼀系列动作和⾏为。基本上通过这个⽅式来回答这个问题,那就没问题了。
2.你写的测试脚本能在不同浏览器上运⾏吗,⽀持跨浏览器平台吗
这⾥出现了跨浏览器平台的概念,就是写⼀个测试⽤例,可以在主流的⼏个浏览器跑起来。
是的,我写的测试⽤例能在IE,⽕狐和⾕歌这三种浏览器上运⾏。主要是在windows平台上运⾏脚本,所以mac的safari浏览器暂时没有写过。主要实现这个跨浏览器的思想就是,把浏览器类型写到配置⽂件,代码⾥写if语句去判断配置⽂件的浏览器的类型,来决定⽤什么浏览器去执⾏测试⽤例。
3.⼀天你写多少个⾃动化测试⽤例
这个要看具体情况,完全取决于⼿⼯测试⽤例的实现难易程度。通常,熟练的话,写⼀个5到8个步骤的测试⽤例,差不多要半⼩时。时间最多花在元素定位和报错debug上⾯,例如在POM思想的框架中,某⼀些元素定位和⽅法是复⽤的,可能会更快⼀些。所以,⼀天,⼤概能完成15-30个⾃动化测试⽤例。
4.什么是POM,为什么要使⽤它
POM是Page Object Model的简称,它是⼀种设计思想,⽽不是框架。⼤概的意思是,把⼀个⼀个页⾯,当做⼀个对象,页⾯的元素和元素之间操作⽅法就是页⾯对象的属性和⾏为,所以⾃然⽽然就⽤了类的思想来组织我们的页⾯。⼀般⼀个页⾯写⼀个类⽂件,这个类⽂件包含该页⾯的元素定位和业务操作⽅法。
为了我们测试⽤例写的简单,清晰,我们很多时候在页⾯对象会封装很多业务操作⽅法,测试脚本只需要调⽤相关⽅法就可以。
还有⼀个可能和这个问题相关的⾯试题,如果页⾯元素经常发⽣需求变化,你是如何做,答案就是采⽤POM思想。好处就是只要该⼀个页⾯,我就去修改这个页⾯对象的元素定位和相关⽅法,脚本不需要修改。
5.在你做⾃动化过程中,遇到了什么问题吗?举例下
这个问题,不管是⾃动化还是任何⼯作,都会被问到。主要想知道你是如何解决问题的,从⽽推断你问题分析和解决的能⼒。
当然有遇到问题和挑战,主要有以下⼏点:
频繁地变更UI,经常要修改页⾯对象⾥⾯代码
运⾏⽤例报错和处理,例如元素不可见,元素不到这样异常
测试脚本复⽤,尽可能多代码复⽤
⼀些新框架产⽣的页⾯元素定位问题,例如ck编辑器,动态表格等
这个遇到的难点完全取决写脚本⼈的代码能⼒。回答三个左右就差不多,记得既然抛出了难点问题,⼀定要记得处理这个问题的⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。