自动化测试面试追命十问


前言

本文是笔者面试过程中,遇到常问自动化测试问题,俗称追命20问,废话比不多说,直接上干货。


`

一、UI测试过程中,怎么判断元素是否存在?

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

NoSuchElementException 这样就可以使用 try catch,如果 catch 到 NoSuchElementException 就返回

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

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

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

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

1.通过封装 find 方法实现 waitforEmelentPresent,这样在对元素进行操作之前保证元素被 找到,进而提高成功率

2.在对元素操作之前,比如 click,如果该元素未 display(非 hidden),就需要先滚动到该 元素,然后进行 click 操作;为啥使用滚动? 因为如果页面没有完全显示,element 如果是 在下拉之后才能显示出来,只能先滚动到该元素才能进行 click,否则是不能 click 操作

3.不同方式进行定位,与 expectedConditions 判断方法封装,循环判断页面元素出现后再操 作;

4.开发人员规范开发习惯,如给页面元素加上唯一的 name,id 等。

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

触发动态事件,然后 findElemnt 如果是动态菜单,需要一级一级 find(JS 实现)

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

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

parent/following-sibling/precent-sibling 等 另外也可以尝试 findbyelements 遍历

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

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

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

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

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

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

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

8 种:id、name、class name、tag name、link text、partial link text、xpath、css selector 偏爱哪一

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

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

Id,因为 id 是唯一的,然而大多数开发并没有设置 id

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

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

2.多使用 selenium 的 WebDriverWait/FluentWait,这样可以优化等待时间

3.减少不必要的操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接 通过 网址来打开,减少不必要的操作。

4.中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的 内容 不影响我们测试,就设置超时时间,中断页面加载。

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

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

2、显式等待:多使用 WebDriverWait,加上显式等待时间,等要操作的元素出现之后再执 行下面的操作;适当的使用 sleep 作为辅助等待。

3、多用 try catch 捕获异常;

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

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

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

总结

例如:以上简单的10问,是在UI测试过程中常见所遇到的问题,并不是简单刻板的回答,常常会引发面

试官在实际项目中的连环追问,所以,一定切合实际项目,综合比较给出合适答案。关注我,不迷路,

继续安排面试10问。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值