1.你能解释下Selenium这个框架吗?

这个问题在面试中被问到的概率还是比较高的,同样类似的问题有,selenium的原理是什么?首先不要被这个问题吓到,我们主要围绕selenium的历史版本演化和基本的组件去展开描述就好,最后回到webdriver这个组件上面,我们基本上都是在使用webdriver提供的API。所以这个题目的最好的答案就是把图画出来,然后自己解释几句就可以。

早期Selenium1.0是有Selenium Grid,Selenium RC, Selenium IDE, Webdriver四部分组成,后来Selenium RC和Webdriver合并之后,就是Selenium2,当前我们在使用Selenium3

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语句去判断配置文件的浏览器的类型,来决定用什么浏览器去执行测试用例。

这个过程,具体看我的博客文章:http://blog.csdn.net/u011541946/article/details/76598441

3.一天你写多少个自动化测试用例

这个要看具体情况,完全取决于手工测试用例的实现难易程度。通常,熟练的话,写一个5到8个步骤的测试用例,差不多要半小时。时间最多花在元素定位和报错debug上面,例如在POM思想的框架中,某一些元素定位和方法是复用的,可能会更快一些。所以,一天,大概能完成15-30个自动化测试用例。

4.什么是POM,为什么要使用它

POM是Page Object Model的简称,它是一种设计思想,而不是框架。大概的意思是,把一个一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,所以自然而然就用了类的思想来组织我们的页面。一般一个页面写一个类文件,这个类文件包含该页面的元素定位和业务操作方法。

为了我们测试用例写的简单,清晰,我们很多时候在页面对象会封装很多业务操作方法,测试脚本只需要调用相关方法就可以。

还有一个可能和这个问题相关的面试题,如果页面元素经常发生需求变化,你是如何做,答案就是采用POM思想。好处就是只要该一个页面,我就去修改这个页面对象的元素定位和相关方法,脚本不需要修改。

具体可以看文章:http://blog.csdn.net/u011541946/article/details/75389004

5.在你做自动化过程中,遇到了什么问题吗?举例下

这个问题,不管是自动化还是任何工作,都会被问到。主要想知道你是如何解决问题的,从而推断你问题分析和解决的能力。

当然有遇到问题和挑战,主要有以下几点:

  • 频繁地变更UI,经常要修改页面对象里面代码
  • 运行用例报错和处理,例如元素不可见,元素找不到这样异常
  • 测试脚本复用,尽可能多代码复用
  • 一些新框架产生的页面元素定位问题,例如ck编辑器,动态表格等

这个遇到的难点完全取决写脚本人的代码能力。回答三个左右就差不多,记得既然抛出了难点问题,一定要记得处理这个问题的方法。

Selenium面试问题和答案-2相关推荐

  1. 资深和新手的100大 Selenium面试问答

    下面的Java Selenium问题指南涵盖了100个最重要的Selenium自动化面试问题,包括简单的Selenium Java面试问题以及带答案的Selenium自动化测试面试问题.本文包含了面向 ...

  2. 自动化面试问题及答案_普遍的基本收入是自动化的答案

    自动化面试问题及答案 It would be strange for people to hear that Milton Friedman, one of the greatest and well ...

  3. 2022最新出炉的软件测试面试宝典附答案

    一.引言 1.1 文档目的 本次文档是为了收集在面试中遇到的一问题与常见的一些答案并不是唯一答案 二.职业规划 2.1 简单的自我介绍下 面试宫,您好,我叫 XXX,来自于 XXXX,目前从事软件测试 ...

  4. html手机端适配怎么调试,html5面试常见问题及答案:移动端布局与适配篇

    原标题:html5面试常见问题及答案:移动端布局与适配篇 1. 移动布局自适应不同屏幕的几种方式 (1)响应式布局 (2)100%布局(弹性布局) (3)等比缩放布局(rem) 2. iscroll安 ...

  5. 2018年前35名Python面试问题和答案

    要使用Python作为更新的工作,您必须熟悉基础知识.在这里,我整理了一些基本的Python面试问题和答案以及一些高级Python问题和答案,以帮助您完成面试.有Python开发人员面试问题,Pyth ...

  6. 好程序员Java教程分享JavaScript面试问题及答案(一)

    好程序员Java教程分享JavaScript面试问题及答案(一) 1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个 ...

  7. 前端必备,JavaScript面试问题及答案

    前端必备,JavaScript面试问题及答案 1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typ ...

  8. spring面试问题与答案集锦

    我收集了一些spring面试的问题,这些问题可能会在下一次技术面试中遇到.对于其他spring模块,我将单独分享面试问题和答案. 如果你能将在以前面试中碰到的,且你认为这些应该是一个有spring经验 ...

  9. django render_2020年最新Django经典面试问题与答案汇总(下)大江狗整理

    终于我们来到Django经典面试问题与答案系列的终章了,在本章我们将分享最后10个常用有用的知识点,也是面试时常问的经典问题.如果你还没有读过本系列前两篇文章的,可以点击如下链接阅读. 2020年最新 ...

最新文章

  1. 你的生产型ML复现不了,可能是工作流程出了问题
  2. 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
  3. 时间源服务器|授时仪|GPS时钟同步系统
  4. C++派生类构造函数调用规则
  5. Linux APT VIM 的一些指令
  6. 8086/8088内部结构
  7. CSS属性小结之--半透明处理
  8. 大数据分析的环节有哪些
  9. 一心想斩获算法岗,却碰上最难求职季
  10. 洗清UI自动化鸡肋说的不白之冤
  11. (MATLAB源代码)SVM多分类
  12. FIR滤波器和IIR滤波器
  13. 周杰伦出道20周年,相关.fans域名等你来抢注~
  14. [苹果开发者账号]04 申请苹果开发者账号 美国报税表
  15. vue项目引入百度地图BMapGL鼠标绘制和BMap辅助工具
  16. 史上最全Maven教程(一)
  17. 从获评毕马威中国领先地产科技50强 看贝壳的长期主义
  18. k8s删除node节点
  19. RuntimeError: ONNX export failed: Couldn‘t export operator aten::upsample_bilinear2d
  20. K8S认证CKA/CKS考试流程PSI Bridge平台考试步骤

热门文章

  1. 小Demo:自动提款机
  2. 【01】 冯·诺依曼体系结构:计算机组成的金字塔
  3. 爬虫遇到合并单元格(爬虫快速处理网页表格)
  4. 牛客竞赛每日俩题 - Day2
  5. AI认知架构四十年的发展与挑战
  6. APS入门3-C#开发-从源码解读一个APS项目
  7. iOS 模拟器安装APP
  8. 欧拉角会出现Gimbal Lock万向节死锁
  9. 提示 Allocation of XXXXXXXX exceeds 10% of system memory.怎么办?
  10. opencv自动裁切_OpenCVSharp 裁剪和缩放 bitmap图像