自动化测试岗位面试题汇总(附答案)
1、你们之前做的接口自动化测试是什么测试方案?因自我介绍时回答了工作经验这一部分,属于追问环节,之前测试团队中优先搭建的框架是UI自动化测试框架,使用框架SELENIUM+TESTNG+ANT+JAVA+SVN+JENKINS ,接口测试一直是单接口的手工测试。而UI自动化测试也是为了解决回归测试与兼容性测试的重复问题。2、为什么没有先做在接口自动化测试?当时团队中都是功能测试人员,接口测试为手工测试,后来因业务量扩大,需求变更频繁,回归测试任务增加,同时 UI自动化研发及维护成本过高、产品版本迭代速度快所以引进了接口自动化测试,通过培训学习、掌握了单接口与联合接口的测试,更多关注业务场景过程与各依赖接口的自动化测试,实现了替代之前手工测试的单接口测试,是用JMETER实现了一套轻量级的接口自动化测试,访问当前接口、得到返回值、解析回参数、SQL的构造、查询结果、判断结果。手工接口测试时只能关注到响应状态、响应时间、响应数据格式包含编码、字段; 以及请求数据格式包含协议、编码、字段3、编程语言中最熟悉哪一种?简历中的职业技能有体现JAVA PYTHON C等,多数是写自动化测试脚本或平时写一些辅助测试小工具时用到的4、Selenium中常用的三种等待方式?隐式等待、显式等待、固定等待延伸:隐式等待隐式等待需要设置一个最长的等待时间,如在规定时间内页面加载完成,就开始执行下一步next(),否则一直等到时间结束,才去执行下一步操作。其优点是对整个Driver的一个周期有作用,只要设置一次隐式等待就好;其缺点是程序会一直等待整个网页加载完成,才执行下一步操作;不够灵活,因程序无法判断当前要使用的元素是否已加载完成,无形中浪费一部分的时间显式等待显式等待要配合until或者until_not方法,加上需要的判断条件,经过多长时间就去查询locator对象可见与否,若locator对象可见则停止等待,如不可见就一直等直至超出写好的时间。等待场景是需要自己构造判断条件 。固定等待固定等待SELENIUM中是最常见的一种等待方式了,其使用thread将整个线程后面的代码sleep并延迟执行。固定等待是强制性等待,让浏览器等待多长时间 ,不论当前的操作执行进度 ,都会强制等待这个固定时间 。非常适合在调试时使用,代码也简单。但缺点是不够灵活 ,如果用例代码中包含多个固定等待,会影响到执行效率。5、如果自动化测试过程中报错信息是:元素未找到 ,你要怎么解决?或者说你的排查问题的步骤是怎样的?这是SELENIUM中比较常见的一种错误提示了,NoSuchElementException: Message: no such element排查过程中可以根据以往经验迅速判断出最可能的原因 ,然后依次排查。通常情况下有以下原因:--要获取的element自身的代码写错,如id是否动态,但写为固定了,或是其他属性拼写有误,属于代码错误--element嵌套在iframe里,当前窗口自然无法点击,需要切换到iframe里再去查找element--element实际并未加载完成,调试时可设置一个等待时间(常见于网络不稳定的情况)--要获取的element是不可见或是被覆盖了,需要用enter代替clickdriver.find_element来查找--element可见的屏幕中,要设置代码执行滚动条操作定位到要获取的元素位置,对于web端页面常见,可以封装成通用方法6、Selenium的底层工作原理?简单描述是:Selenium2需要用客户端的自动化测试脚本,来驱动浏览器即DRIVER,Selenium2中内置了FIREFOX的DRIVER,所以没有指定特定浏览器时,默认会调用FIREFOX来执行脚本。不同浏览器以及不同版本都需要相应的DRIVER驱动。Selenium其他版本原理也不尽相同。百科中对Selenium的功能介绍:框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。

7、Java的面向对象如何理解?能够举出例子说明更好,用自己的理解方式。面向对象是一种程序设计方法,面向对象的基本思想是使用对象、类、继承、封装、多态等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造出应用系统,并在整个编写过程中使用人类的自然思维方式,与面向过程的编程方式正好是相对的概念。延伸:面向过程概念,以及二者的优缺点。同时分别解决了什么问题。8、面向对象有哪三个特征?封装、继承、多态延伸了解每个特征的使用场景,以及放在应用代码中的各个特征与使用注意事项。