金三银四招聘季,UI自动化面试题放送
Posted 测试萌萌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了金三银四招聘季,UI自动化面试题放送相关的知识,希望对你有一定的参考价值。
进入金三银四,很多小伙伴有被动跳槽的打算,所以更新一些UI自动化面试题,希望能帮到大家。
一 web自动化中常见的元素定位方式?
-
id:根据id来获取元素,返回单个元素,id值一般是唯一的;
-
name:根据元素的name属性定位;
-
tagName:根据元素的标签名定位;
-
className:根据元素的样式class值定位;
-
linkText:根据超链接的文本值定位;
-
partialLinkText:根据超链接的部分文本值定位;
-
cssSelector:css选择器定位;
-
xpath:通过元素的路径来定位。
二 简述你所知道的等待方式?
-
强制等待:也叫线程等待, 通过线程休眠的方式完成的等待,如等待5秒: sleep(5),一般情况下不太使用强制等待。
-
隐式等待:通过implicitly Wait完成的延时等待,注意这种是针对全局设置的等待,如设置超时时间为10秒,使用了implicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,如果超过10秒还没有找到,则抛出异常,隐式等待比较智能,它可以通过全局配置,但是只能用于元素定位。
-
显式等待:也称为智能等待,针对指定元素定位指定等待时间,在指定时间范围内进行元素查找,找到元素则直接返回,如果在超时还没有找到元素,则抛出异常,显示等待是 selenium 当中比较灵活的一种等待方式,他的实现原理其实是通过 while 循环不停的尝试需要进行的操作。
三 UI自动化测试用例如何设计?
UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:
-
优先选取覆盖产品核心功能的用例;
-
从成本考量,不要选择流程过于复杂的用例;
-
选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;
-
优先实现正向的测试用例,反向用例一般情况复杂、数量多。
四 你怎么提高UI自动化脚本的稳定性?
-
尽量用相对路径的xpath表达式;
-
查找元素优先用显式等待;
-
用例与用例之间尽量避免产生依赖,用例可以独立执行;
-
用例执行结束后对测试场景进行还原,避免影响其他用例的执行;
-
脚本执行失败后加入重试机制,提升用例的稳定性;
-
尽量保证单独的测试环境,避免其他的测试同步进行。
五 UI 自动化测试中,如何做集群?
-
Selenium Grid,分布式执行用例;
-
Appium 使用 STF 管理多设备;
-
Docker+K8S 管理集群。
六 如何保证页面元素一定是可以点击的?
-
首先通过封装find方法,实现wait_for_element_ispresent,这样在对元素进行操作之前保证元素被找到,进而提高成功率。(WebDriverWait)
-
在对页面进行click之前,先滚动到该元素(通过Js封装),避免在页面未加在完成前或是在下拉之后才能显示。
七 你的自动化用例的执行策略是什么?
-
每日执行:比如每天晚上在主干执行一次
-
周期执行:每隔2小时在开发分支执行一次
-
动态执行:每次代码有提交就执行
八 元素定位失败的原因可能有哪些?
-
元素定位方式编写错误;
-
点击速度过快,页面没有加载出来就点击页面上的元素;
-
frame/iframe表单嵌套;
-
页面跳转到新的标签页,未切换handle窗口;
-
使用了动态属性进行定位元素;
-
页面上的警告弹框;
-
页面元素失去焦点导致脚本运行不稳定;
-
元素被遮挡,不可用,不可见。
九 selenium调用js(execute_script),有哪些场景?
-
移除元素隐藏、禁用、只读等限制属性;
-
为元素添加id或高亮样式;
-
页面滚动;
-
富文本框输入(html注入);
-
获取页面信息。
以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看、转发四连爱❤️ 支持。 咱们下篇文章见,Bye~👋
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
以上是关于金三银四招聘季,UI自动化面试题放送的主要内容,如果未能解决你的问题,请参考以下文章
金三银四跳槽季-2021年Java程序员最新面试题(附详细目录和答案)!