自动化面试题记录整理(部分答案自己整理)

1、selenium中如何判断元素是否存在?

没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断

2、selenium中hidden或者是display = none的元素是否可以定位到?

不可以,想点击的话,可以用js去掉dispalay=none的属性

3、selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

1.首先通过封装find方法,实现wait_for_element_ispresent(WebDriverWait)
2.在对页面进行click之前,先滚动到该元素(通过Js封装),避免在页面未加载完成前或是在下拉之后才能显示。
3.不同方式进行定位,与expected_conditions判断方法封装,循环判断页面元素出现后再操作;
4.开发人员规范开发习惯,如给页面元素加上唯一的name,id等。

4、如何提高selenium脚本的执行速度?

1.优化测试用例。设置等待时间的时候,少用sleep,尽量不用implicitly_wait,多用显式等待方法;
2.减少不必要的操作步骤。如经过三四步才能打开要测试的页面的话,可以直接通过网址来打开;
3.中断页面加载。如果加载的内容不影响我们测试,就设置超时时间,中断页面加载;
4.使用Selenium grid,通过testNG实现并发执行。 在编写测试用例的时候,实现松耦合,然后再服务器允许的情况下,尽量设置多线程实现并发运行。

5、用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?

1.在经常检测失败的元素前尽量加上显式等待时间,等要操作的元素出现之后再执行下面的操作;
2.多线程的时候,减少测试用例耦合度,因为多线程的执行顺序是不受控制的;
3.多用 try 捕捉,处理异常;
4.尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。

6、如何设计高质量自动化脚本

1.使用四层结构实现业务逻辑、脚本、数据分离。
2.使用PO设计模式,将一个页面用到的元素和操作步骤封装在一个页面类中。如果一个元素定位发生了改变,我们只用修改这个页面的元素属性
3.对于页面类的方法,我们尽量从客户的正向逻辑去分析,方法中是一个独立场景,例如:登录到退出,而且不要想着把所有的步骤都封装在一个方法中。
4 测试用例设计中,减少测试用例之间的耦合度。

7、你的自动化用例的执行策略是什么?

1.自动化测试用例是用来监控的。集成到jenkins,创建定时任务定时执行;
2.有些用例在产品上线前必须回归。jenkins上将任务绑定到开发的build任务上,触发执行;
3.有些用例不需要经常执行。jenkins创建一个任务,需要执行的时候人工构建即可。

8、什么是持续集成?

频繁的将代码集成到主干,持续性的进行项目的构架,以便能能够快速发现错误,防止分支大幅度偏离主干

9、自动化测试的时候是不是需要连接数据库做数据校验?

UI自动化不需要
接口测试会需要

10、Selenium有几种定位方式?你最偏爱哪一种,为什么?

Selenium有八种定位方式:
与name有关的有三种:name、class_name、tag_name
与link相关的有两种:link_text、partitial_link_text
与id有关:id
全能选手:xpath、css_selector
如果存在id,我一定使用Id,因为简单方便,定位最快。其次是Xpath,因为很多情况下html标签的属性不够规范,无法唯一定位。Xpath是通过相对位置定位
如果没有,那么CSS定位器应该被优先考虑,因为在大多数现代浏览器中,它们的评估速度比XPath更快。

11、如何去定位页面上动态加载的元素?

首先触发动态事件,然后再定位。如果是动态菜单,则需要层级定位。——JS实现(对动态事件封装)

12、如何去定位属性动态变化的元素?

先去找该元素不变的属性,要是都变,那就找不变的父元素,用层级定位(以不变应万变)
属性动态变化也就是指该元素没有固定的属性值,可以通过:
JS实现,
通过相对位置来定位,比如xpath的轴,paren/following-sibling/percent-sibling
http://www.cnblogs.com/zhaozhan/archive/2009/09/10/1564332.html

13、点击链接以后,selenium是否会自动等待该页面加载完毕?

不会的。所以有的时候,当selenium并未加载完一个页面时再请求页面资源,则会误报不存在此元素。所以首先我们应该考虑判断,selenium是否加载完此页面。其次再通过函数查找该元素。

14、webdriver client的原理是什么?

在selenium启动以后,driver充当了服务器的角色,跟client和浏览器通信,client根据webdriver协议发送请求给driver。driver解析请求,并在浏览器上执行相应的操作,并把执行结果返回给client.

15、webdriver的协议是什么?

WebDrive协议本身是http协议,数据传输使用json

16、启动浏览器的时候用到的是哪个webdriver协议?

-http

17、什么是page object设计模式?

1.通俗来讲,把每个页面当成一个页面对象,页面层写定位元素方法和页面操作方法
2.用例层从页面层调用操作方法,写成用例
3.可以做到定位元素与脚本的分离

18、怎样去选择一个下拉框中的value=xx的option?

1.select类里面提供的方法:select_by_value(“xxx”)
2.xpath的语法也可以定位到

19、如何在定位元素后高亮元素(以调试为目的)?

-重置元素属性,给定位的元素加背景、边框

20、什么是断言和验证?

断言(assert):测试将会在检查失败时停止,并不运行后续的检查
优点:可以直截了当的看到检查是否通过
缺点:检查失败后,后续检查不会执行,无法收集那些检查结果状态
验证(vertify):将不会终止测试
缺点:你必须做更多的工作来检查测试结果:查看日志——>耗时多,所以更偏向于断言

21、page object设置模式中,是否需要在page里定位的方法中加上断言?

不需要,page页只做元素抓取和操作方法

22、page object设计模式中,如何实现页面的跳转?

初始化driver参数,Page类传driver参数

23、自动化测试用例从哪里来?

-手工用例中抽取

24、你觉得自动化测试最大的缺陷是什么?

1.不稳定
2.可靠性不强
3.不易维护
4.成本与收益

25、什么是分层测试?

1.数据层
2.接口层’
3.UI层

26、webdriver可以用来做接口测试吗?

不可以,webdriver是专门做web的UI自动化参数

27、get和post 的区别?

(1)GET请求:请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。
POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。
(2)传输数据的大小
使用GET请求时,传输数据会受到URL长度的限制。
对于POST,理论上是不会受限制的
(3)安全性。POST的安全性比GET的高

自动化测试面试题及答案大全,赶紧收藏吧!相关推荐

  1. 自动化测试面试题及答案大全(5)

    1.Selenium是否支持桌面应用软件的自动化测试. Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定 ...

  2. python 自动化测试面试题及答案_自动化测试面试题及答案大全(1)

    自动化面试题记录整理(部分答案自己整理) selenium中如何判断元素是否存在? 没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断 selenium中hidden或者 ...

  3. 自动化测试面试题及答案大全(上)

    自动化面试题记录整理(部分答案自己整理) selenium中如何判断元素是否存在? 没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断 selenium中hidden或者 ...

  4. 自动化测试面试题及答案大全(1)

    自动化面试题记录整理(部分答案自己整理) selenium中如何判断元素是否存在? 没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断 selenium中hidden或者 ...

  5. WEB自动化测试面试题及答案大全

    1.Selenium是否支持桌面应用软件的自动化测试. Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定 ...

  6. 2020各大厂面试真题:WEB自动化测试面试题及答案大全

    1.Selenium是否支持桌面应用软件的自动化测试. Selenium不支持桌面软件的自动化测试,Selenium是根据网页元素的属性才定位元素,而其他桌面软件自动化测试工具是根据桌面元素的位置来定 ...

  7. android基础!靠着这份面试题跟答案,赶紧收藏!

    上周喜提oppo面试offer,本人在深圳,有4年多的Android项目经验,普通本科学历. 面试是相互相在,OPPO给我的印象确实如其核心价值观所说:本分. 一面.部长面和HR面都蛮顺利(一千个人可 ...

  8. 自动化测试面试题及答案大全(2)

    问题1:Selenium是什么,流行的版本有哪些? 是一个开源的web自动化测试的框架,支持多种编程语言,支持跨浏览器平台进行测试. Selenium 1.0或Selenium RC Selenium ...

  9. 自动化测试面试题及答案大全(下)

    1.你如何用Selenium测试? Selenium+Maven+TestNG+Jekins 2.如何解决问题? 先思考,然后百度,考虑网速.电脑配置等原因,这题主要看重解决问题的能力和思维. 3.你 ...

最新文章

  1. 人工智能十大流行算法
  2. 计算机网络总结:第三章 运输层
  3. 互动直播的技术细节和解决方案实践经验谈
  4. STRUTS2.X之使用validate方法验证数据
  5. slide简介(大数据技术)
  6. 2021年石家庄七中高考成绩查询入口,石家庄市教育考试院官网2020中考查分:成绩查询入口...
  7. hdu 4970 killing monster 代代相传刷qq 不用线段树啦~
  8. UE3 Lightmass 工具
  9. PbootCMS V1.1.4 正式发布
  10. 计算机等级考试攻略:四级网络工程师
  11. 二叉树的叶结点/ 树的深度计算
  12. DW里面html鼠标点击特效,【好好学习】-DW-鼠标点击 爆米花特效 代码
  13. 别让CDN的回源把你的服务器拖垮
  14. Google Dapper,大规模分布式系统的跟踪系统
  15. 6月3日 徒步虎跳峡——第一日
  16. 纽约客:变态连环杀手正在被算法迅速围剿
  17. 百度大脑开放日·互联网内容安全线上专场报名中!
  18. Android的WebView如何播放视频和全屏视频(腾讯X5内核)
  19. LightGBM算法——广告收益回归预测模型
  20. power supply是如何上报电池信息的

热门文章

  1. 【算法分析】分支限界法详解+范例+习题解答
  2. Linux发行版和安装的基本知识(转)
  3. 手机设置fast路由器时显示服务器无响应,手机设置路由器服务器未响应怎么办...
  4. android 微信广播拉活,实战解析微信群快速拉完500人的方法
  5. web前端动画专题(1):字体特效
  6. threejs 模型中指定材质更换为视频贴图
  7. 你不可不知的任务调度神器-AirFlow
  8. tensorflower delegate介绍
  9. Nginx配置及配置加载
  10. FM2接口FM2+接口主板能装的最高的CPU是什么