欢迎光临散文网 会员登陆 & 注册

99道大厂软件测试面试题及答案!百万年薪就靠它了

2021-07-27 14:50 作者:土豆聊软件测试  | 我要投稿

1.怎么判断元素是否存在?

判断元素是否存在和是否出现不同,判断是否存在意味着如果这个元素压根就不存在,就会抛出

NoSuchElementException

这样就可以使用 try catch,如果 catch 到 NoSuchElementException 就返回 false。通常在

项目中会把这个功能封装在 isElementPresent 方法中。


2.如何判断元素是否出现?

判断元素是否出现,存在两种情况,一种是该元素压根就没有,自然不会出现;另外一种是有这

样的元素,但是是 hidden 状态

可以通过先判断是否存在,如果不存在返回 false;如果存在再去判断是否 displayed。


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

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





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

触发动态事件,然后 findElemnt

如果是动态菜单,需要一级一级 find(JS 实现)


6.如何去定位属性动态变化的元素?

属性动态变化是指该 element 没有固定的属性值,所以只能通过相对位置定位

比如通过 xpath 的轴, parent/following-sibling/precent-sibling 等

另外也可以尝试 findbyelements 遍历


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

不会的。所以有的时候,当 selenium 并未加载完一个页面时再请求页面资源,则会误报不存在

此元素。所以首先我们应该考虑判断,selenium 是否加载完此页面。其次再通过函数查找该元

素。


8.自动化测试的时候是否需要连接数据库做数据校验?

一般来说 1、 UI 自动化不需要(很少需要);2、接口测试会需要:从数据库层面来进行数据

校验可以更方便验证系统的数据处理方面是否正确;


9.有几种元素常用定位方式,分别是?你最偏爱哪一种,为什么?

8 种:id、name、class name、tag name、link text、partial link text、xpath、css selector

偏爱哪一种?答:

我最常用的是 xpath(或 CssSelector)因为很多情况下,html 标签的属性不够规范,无法通

过单一的属性定位,这个时候就只能使用 xpath 可以去重实现定位唯一 element

事实上定位最快的是 Id,因为 id 是唯一的,然而大多数开发并没有设置 id。


10.怎么提高 selenium 脚本的自动化执行效率?

1.优化测试用例,尽可不使用 sleep,减少使用 ImplicitlyWait

2.多使用 selenium 的 WebDriverWait/FluentWait,这样可以优化等待时间3.减少不必要的操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过

网址来打开,减少不必要的操作。

4.中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容

不影响我们测试,就设置超时时间,中断页面加载。

5.使用性能好的电脑


11.用例在运行过程中经常会出现不稳定的情况,也就是这次可以通过,下次无

法通过了,如何提高用例的稳定性?

1、查找元素前先做判断:ExpectedConditions 里面的各种方法;

2、显式等待:多使用 WebDriverWait,加上显式等待时间,等要操作的元素出现之后再执行

下面的操作;适当的使用 sleep 作为辅助等待。

3、多用 try catch 捕获异常;

4、多线程的时候,减少测试用例耦合度,因为多线程的执行顺序是不受控制的;

5、尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。

6、使用重试机制,在失败时重运行。


12.你的自动化用例的执行策略是什么?

整体策略是依据项目实际上线和转测试周期来定的。

1.自动化测试用例是用来监控的。集成到 jenkins,创建定时任务定时执行;

2.有些用例在产品上线前必须回归。jenkins 上将任务绑定到开发的 build 任务上,触发执行;

3.有些用例不需要经常执行。jenkins 创建一个任务,需要执行的时候人工构建即可。


13.什么是持续集成?

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


14.webdriver client 的原理是什么?

在 selenium 启动以后,driver 充当了服务器的角色,跟 client 和浏览器通信,client 根据

webdriver 协议发送请求给 driver。driver 解析请求,并在浏览器上执行相应的操作,并把执

行结果返回给 client.


文字太多,不能一一列举,需要完整电子版的请评论666,然后私,信我,即可领取~

99道大厂软件测试面试题及答案!百万年薪就靠它了的评论 (共 条)

分享到微博请遵守国家法律