UI自动化常见精华面试题整理

Posted 测试baby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UI自动化常见精华面试题整理相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

selenium的运行原理

在这里插入图片描述

1、基于Web端如何做自动化测试,谈谈你的思路和方向?

Web端的自动化测试,基本就是模拟手工测试人员来做功能测试。用机器的自动执行代替人的操作。web端呈现的产品有两个方向可以做自动化测试:接口层和界面操作层,且接口层自动化的比例要高于界面操作层。主要对产品稳定的功能进行自动化测试,主要用于产品的核心功能冒烟测试、回归测试。从系统最核心的功能开始做,再根据情况慢慢展开。

2、UI自动化测试用例如何设计?

UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:

优先选取覆盖产品核心功能的用例;

从成本考量,不要选择流程过于复杂的用例;

选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;

优先实现正向的测试用例,反向用例一般情况复杂、数量多;

3、什么是PO模式?

PO模式,全称为Page Object Model ,简称POM,是页面对象模式。对页面进行抽象或者说建模的过程,是把一个具体的页面转化为编程语言当中的一个对象,页面特性转化成对象属性,页面操作转化为对象方法。把页面的一个个的web元素设计为页面对象的属性,把页面上的操作(如点击、输入等)设计为页面对象的行为。在自动化测试当中,主要用来实现对页面操作和测试逻辑的一个分离,这样做的好处是业务和实现分开,使自动化测试脚本具备更高的可维护性。

4、你认为PO模式的封装原则有哪些?

公共方法表示页面提供的一个服务,比如我们可以把登录封装成一个 login 方法,把搜索方法封装成一个设施方法,把注册操作封装成一个 register 的方法;

尽量不要暴露页面的内部,比如一个html的页面还有一个页面的上下结构;

在 PO 当中一般不做断言,会做到页面逻辑和测试逻辑的分离;

PO 一般里面的方法返回 self 或者是其他的 Page Object ,也可以是一个元素属性;

整个 PO 不需要封装整个页面的行为,用到什么逻辑就封装什么;

对于统一操作,如果出现不同的结果,可以把用不同的方法来表示,比如说登录成功有跳转,登录失败有报错,如果登录还有一种会授权的状况,那么可以封装成三个单独的方法:login success、login error、login invalid。

5、你怎么提高UI自动化脚本的稳定性?

尽量用相对路径的xpath表达式;

查找元素优先用显示等待;

用例与用例之间尽量避免产生依赖,用例可以独立执行;

用例执行结束后对测试场景进行还原,避免影响其他用例的执行;

脚本执行失败后加入重试机制,提升用例的稳定性;

尽量保证单独的测试环境,避免其他的测试同步进行;

6、UI 自动化测试中,如何做集群?

Selenium Grid,分布式执行用例;

你对Selenium Grid有什么了解?它提供了什么功能?

A: Selenium Grid是一款利用现有计算基础架构大幅加速Web应用程序功能测试的工具。

允许测试者轻松地在多台机器上并行运行多个测试,并且可以在异构环境中运行。

基于优秀的Selenium Web测试工具,Selenium Grid允许测试者并行运行多个Selenium Remote Control实例。

更好的是,它集成显示所有Selenium远程控制,所以不必担心实际的基础设施。

Selenium Grid将运行Selenium测试套件所需的时间,缩短到Selenium实例的单个实例运行时间的一小点。

7、简述你所知道的延时等待方式?

强制等待:也叫线程等待, 通过线程休眠的方式完成的等待,如等待5秒: Thread sleep(5000),一般情况下不太使用强制等待,主要应用的场景在于不同系统交互的地方。

隐式等待:通过implicitly Wait完成的延时等待,注意这种是针对全局设置的等待,如设置超时时间为10秒,使用了implicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,如果超过10秒还没有找到,则抛出异常,硬式等待比较智能,它可以通过全局配置,但是只能用于元素定位。

显式等待:也称为智能等待,针对指定元素定位指定等待时间,在指定时间范围内进行元素查找,找到元素则直接返回,如果在超时还没有找到元素,则抛出异常,显示等待是 selenium 当中比较灵活的一种等待方式,他的实现原理其实是通过 while 循环不停的尝试需要进行的操作。

这里给大家整理了一份《软件测试工程师进阶的技术栈》,包含了诸多技术栈,希望能帮助在升级打怪中提供中坚力量

给大家推荐下我自己建的软件测试交流学习群: 902061117 ,群里都是搞软件测试的,如果你正在学习测试 ,小编欢迎你加入,大家都是测试党,群内不定期分享干货(都是软件测试相关的),包括我自己整理的一份2021最新的进阶自动化资料。

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

关注我的微信公众号【伤心的辣条】免费获取~

送上一句话:

世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

在这里插入图片描述

好文推荐:

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

测试岗反复跳槽,跳着跳着就跳没了…

软件测试人员该学习 Python 的七个理由

App公共测试用例梳理

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

35岁之后软件测试工程师靠什么养家?我能继续做测试!

以上是关于UI自动化常见精华面试题整理的主要内容,如果未能解决你的问题,请参考以下文章

2021年面试,整理全网初中高级常见Java面试题附答案

常见Android面试题及答案(详细整理)

腾讯整理最常见的78道面试题:面试必备(含答案)

刷题整理面试常见算法题集合

常见的Java面试题整理

网上常见的FPGA面试题整理,总共58题(全部加了问题答案)